zoukankan      html  css  js  c++  java
  • Windows 下 zip 版的 MySQL 的安装

     创建 配置文件

    MySQL server 启动时,它会在按照下表列出位置的顺序寻找并读取配置文件:

    File Name

    Purpose

    %PROGRAMDATA%MySQLMySQL Server 5.7my.ini, %PROGRAMDATA%MySQLMySQL Server 5.7my.cnf

    Global options

    %WINDIR%my.ini, %WINDIR%my.cnf

    Global options

    C:my.ini, C:my.cnf

    Global options

    BASEDIRmy.ini, BASEDIRmy.cnf

    Global options

    defaults-extra-file

    The file specified with --defaults-extra-file, if any

    %APPDATA%MySQL.mylogin.cnf

    Login path options

    %PROGRAMDATA% 表示为所有用户保存的应用程序数据目录,默认路径为 C:ProgramData

    %WINDIR% 代表 Windows 目录,通常为 C:WINDOWS

    使用命令:echo %WINDIR% 可以显示 %WINDIR% 环境变量的实际路径。

    %APPDATA% 表示应用程序数据目录。使用:echo %APPDATA% 来显示。我的电脑上为:C:UsersfeifeifanyeAppDataRoaming

    BASEDIR 表示 MySQL 安装目录,我的电脑是:C:AppsMySQL57

    初始 MySQL 安装目录里面有一个 my-default.ini 模板文件,复制一份,命名为 my.ini,以此作为默认配置文件。

    配置文件可以使用任意一种文本编辑器修改内容,打开文件,添加一个 [mysqld] 节,并指定 basedir datadir 的值

    [mysqld]

    # set basedir to your installation path

    basedir=C:\Apps\MySQL57

    # set datadir to the location of your data directory

    datadir=C:\APPs\MySQL57\data

    MySQL 5.7.6 之后,Zip 版本的 MySQL 不再包含 data 目录了。为了通过创建 data 目录并填充表来初始化 MySQL 安装,使用 --initialize --initialize-insecure 来初始化 MySQL

    如果想使用不同的 data 目录,那么直接移动整个 data 目录的内容到新位置,然后每次启动 server 时使用 --datadir 选项来指定新的 data 目录。

     

     初始化数据目录

    如果使用压缩包安装 MySQL,则需要使用 mysqld 手动初始化 data 目录。

    为了初始化 data 目录,调用 mysqld,并加上 --initialize --initialize-insecure 选项,这个区别在于是否给 'root'@'localhost' 账户生成一个随机密码。

    binmysqld --initialize

    binmysqld --initialize-insecure

    使用该命令以后,服务器将做一下操作:

    • 服务器检查是否已存在 data 目录
      • 如果没有 data 目录,则创建之
      • 如果已有 data 目录且非空,则服务器产生一条错误信息:"[ERROR] --initialize specified but the data directory exists. Aborting"然后退出。此时应删除该目录重新尝试。
    • data 目录里面,服务器创建 mysql 系统数据库和表,包括 grant 表,server-side 表和 time zone 表。
    • 服务器初始化 system tablespace 和相关数据结构来管理 InnoDB 表。
    • 服务器创建 'root'@'localhost' 超级账户,并根据 --initialize 选项来决定是否创建密码:
      • 使用 --initialize 将创建一个随机密码,并显示一条消息:"[Warning] A temporary password is generate fot root@localhost:iTag$dfdgF"
      • 使用 --initialize-insecure,将不创建密码并显示一条警告消息:"Warning] root@localhost is created with an empty password! Please consider switching off the --initialize-insecure option"
    • 服务器填充 server-side 帮助表(如果其内容 fill_help_tables.sql 文件可用),服务器不会填充 time zone 表。
    • 如果给出了 --init-file 选项指定为一个文件,服务器将执行该文件中的语句。这个选项能够让你执行自定义的启动设置
    • 服务器退出

    初始化之后就可以启动 server 了。

    • 启动 server。见下面一节(第一次启动 Server
    • 连接到 server。如果使用 --initialize 初始化的,那么使用随机密码登录:

      mysql -u root -p

      Enter password: *********

      如果使用 --initialize-insecure 初始化的,那么这样登录:

      mysql -u root --skip-password

    • 连接成功后,设定 root 密码:

      ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

     第一次启动 Server

    如果要测试 server 最好在 DOS 窗口中运行。这样你很容易看到服务器显示的状态信息,如果配置出现问题,相关消息就会显示。可以这样启动:

    "...mysqld" --console

    对于一个支持 InnoDB server 来说,启动之后你可能会看到类似的下列信息:

    InnoDB: The first specified datafile c:ibdataibdata1 did not exist:

    InnoDB: a new database to be created!

    InnoDB: Setting file c:ibdataibdata1 size to 209715200

    InnoDB: Database physically writes the file full: wait...

    InnoDB: Log file c:iblogsib_logfile0 did not exist: new to be created

    InnoDB: Setting log file c:iblogsib_logfile0 size to 31457280

    InnoDB: Log file c:iblogsib_logfile1 did not exist: new to be created

    InnoDB: Setting log file c:iblogsib_logfile1 size to 31457280

    InnoDB: Log file c:iblogsib_logfile2 did not exist: new to be created

    InnoDB: Setting log file c:iblogsib_logfile2 size to 31457280

    InnoDB: Doublewrite buffer not found: creating new

    InnoDB: Doublewrite buffer created

    InnoDB: creating foreign key constraint system tables

    InnoDB: foreign key constraint system tables created

    011024 10:58:25 InnoDB: Started

    server 完成启动,将看到下列信息,表示服务器已经准备好接受客户端的连接了:

    mysqld: ready for connections

    Version: '5.7.15. socket: '' port:3306

    服务器继续输出其他诊断信息,你可以打开另一个命令行窗口来运行客户端程序。

    如果忽略 --console 选项,服务器将把诊断信息写入 error log 文件(data 目录)

       

     从命令行启动 MySQL

    MySQL Server 可以从命令行手动启动。输入如下命令:

    mysqld

    通过命令停止 MySQL Server

    "...inmysqladmin" -u root shutdown

    如果 root 账户有密码,那就要 -p 选项,并在提示后输入密码

    如果 mysqld 没能启动,在 error log 中查看服务器输出的信息,来找到问题原因。error log 文件是一个 .err 文件,通常在 data 目录下面。此外也可以使用 --console 选项,这样就能在命令行里看到服务器输出的信息(找到问题原因)。最后是使用 --standalone 或者 --debug 选项启动 mysqld,此时,mysqld 将写入一个 log 文件(C:mysqld.trace),里面包含未能启动的原因。

       

      MySQL 程序目录(通常是 ...in 添加到 PATH 环境变量

    但是同一个机器上有多个 MySQL server 时,就不应添加 MySQL bin 目录到PTAH环境变量了。

       

     安装 MySQL 作为 Windows 服务

    Windows 上面推荐的做法是把 MySQL 作为一个 Windows 服务来启动,这样 MySQL 就能随系统启动和关闭了。

    安装服务之前,先通过下面的命令关闭已经启动的 server。如果设置了密码,就要加上 -p 参数,然后在提示后输入密码

    "...inmysqldadmin" -u root shutdown

    安装服务:

    "...inmysqld" --install

    这个命令并不启动 server

    安装服务时还可以用一些附加的参数:

    • --install 之后指定服务名,默认为 MySQL
    • 当给定服务名,后可跟一个单个配置文件,命令 --default-file=file_name 来指定 Server 启动后读取的配置文件名
    • 在服务名后可指定 --local-service 选项,将使 server 运行在 LocalService Windows 账户之下(具有有限的系统权限)

    服务安装后,会随着系统启动和关闭。也可以使用 NET START MySQL 命令来启动,使用 NET STOP MySQL 命令手动关闭

    当作为服务运行时,mysqld 访问不了控制台窗口,所以如果 mysqld 没能启动,在 .err 中查看 server 输出的信息来寻找问题原因。

    也可以把 MySQL server 安装为手动启动的服务:

    "...inmysqld" --install-manual

    移除服务

    首先停止服务 NET STOP MySQL ,然后用 --remove 选项来移除:

    "...inmysqld" --remove

       

     测试 MySQL 是否安装

    执行下面任意一个命令来测试是否 MySQL 工作了:

    "..inmysqlshow"

    "..inmysqlshow" -u root mysql

    "..inmysqladmin" version status proc

    "..inmysql" test

       

    参考链接:http://dev.mysql.com/doc/refman/5.7/en/windows-install-archive.html

  • 相关阅读:
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(1)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(2)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(2)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之完成登录功能
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口调试
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建Viewport(1)
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之创建输出验证码图片的控制器
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之调整首页显示
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之登录窗口
    一步一步使用Ext JS MVC与Asp.Net MVC 3开发简单的CMS后台管理系统之用户管理(3)
  • 原文地址:https://www.cnblogs.com/feiffy/p/5894151.html
Copyright © 2011-2022 走看看