• 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

  • 相关阅读:
    C:函数指针、回调函数
    C:内存分配、内存中五大区
    C:指针
    C:进制
    C:预编译指令
    C:矩形相交、相包含、相离关系判断
    C:结构体
    C:函数
    C:数组
    C: 冒泡排序
  • 原文地址:https://www.cnblogs.com/feiffy/p/5894151.html
Copyright © 2020-2023  润新知