环境
win10 MySQL5.7
安装的过程
- 解压缩文件到所需的安装目录(把下载下来的压缩文件进行解压)
- 创建选项文件
- 选择MySQL服务类型
- 初始化MySQL
- 启动MySQL服务
- 保护默认账号
步骤一、解压缩
说明了就是把下载好的文件进行解压缩:
mysql-5.7.17-winx64.zip
把上面的文件进行解压,OK。
步骤二、创建选项文件
英文是:
Creating an Option File
Google翻译为:选项
但是看完官方介绍后,感觉应该叫: 创建配置文件
因为说白了就是创建:my.ini文件。
之所以有这一步: 1. MySQL的安装目录和数据目录是不同的,有的时候我们想自己去配置,启动的时候我们就想配置好,如果每次启动时(假设是命令行启动),那么我们都要在命令行中添加相关的参数,以相关的路径。比如:(C:\Program Files\MySQL\MySQL Server 5.7 and C:\Program Files\MySQL\MySQL Server 5.7\data).
- 有的时候我们可能需要调整服务器的设置。如内存,缓存或InnoDB配置信息。
我们创建==my.ini文件==,可以参考==my-default.ini文件==
在window中配置参考如下:
[mysqld]
# set basedir to your installation path
basedir=E:\\mysql
# set datadir to the location of your data directory
datadir=E:\\mydata\\data
在Linux中配置参考如下:
[mysqld]
# set basedir to your installation path
basedir=E:/mysql
# set datadir to the location of your data directory
datadir=E:/mydata/data
==注意:==
从MySQL 5.7.6开始,Zip存档不再包括数据目录。 要通过创建数据目录并填充mysql系统数据库中的表来初始化MySQL安装,请使用–initialize或–initialize-insecure初始化MySQL。 有关其他信息,请参见第2.10.1.1节“使用mysqld手动初始化数据目录”。
如果要在不同位置使用数据目录,则应将数据目录的全部内容复制到新位置。 例如,如果要使用E:\ mydata作为数据目录,则必须执行以下两项操作:
将整个数据目录及其所有内容从默认位置(例如C:\ Program Files \ MySQL \ MySQL Server 5.7 \ data)移动到E:\ mydata。
每次启动服务器时,使用–datadir选项指定新的数据目录位置
选择MySQL服务类型
初始化data目录
由于我们采用的是zip压缩包的形式安装。 所以需要初始化data目录。
==注意:== 在MySQL 5.7.7之前的Windows发行版包括一个数据目录,在mysql数据库中有一组预初始化的帐户。
从5.7.7开始,使用Noinstall软件包执行的Windows安装操作不包括数据目录。 要初始化数据目录,请使用第2.10.1.1节“使用mysqld手动初始化数据目录”中的说明。
手动初始化data目录使用mysqld命令
在window中执行命令:
官网的写法:
C:\> bin/mysqld --defaults-file=C:\my.ini --initialize
我本机的写法:
D:\Program Files\mysql-5.7.17-winx64\bin>
mysqld --defaults-file=D:\Program Files\mysql-5.7.17-winx64\my.ini --initialize
这样执行时,由于目录中有空格,结果报错了:
==mysqld: [ERROR] Could not open required defaults file: D:\Program== ==mysqld: [ERROR] Fatal error in defaults handling. Program aborted!==
后来我把 写法改成:
D:\Program Files\mysql-5.7.17-winx64\bin>
mysqld --defaults-file=..\my.ini --initialize-insecure
就成功了,日志信息打印在data目录中的.err文件中.
其中–initialize-insecure参数,表示不会自动生成密码。 而使用–initialize会自动生成初始密码,并标志为过期。
==官网的解释:== 要初始化数据目录,调用mysqld时,请使用–initialize或–initialize-insecure选项,具体取决于您是否希望服务器为’root’@’localhost’帐户生成随机初始密码。
无论平台如何,请使用–initialize“默认安装”安装(即包括生成随机初始根密码)。在这种情况下,密码标记为过期,您需要选择一个新的密码。使用–initialize-insecure选项,不会生成root密码;假设您在将服务器投入生产使用之前,会及时为帐户分配密码
至此,MySQL的data目录初始化完毕。
启动MySQL服务
window启动方法:
官网的写法:
C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --console
本机的写法: ==说明== 这里我配置了环境变量,就是把MySQL安装目录中bin目录,配置到path路径中。
C:\Users\yutao>mysqld --console
显示结果:
2017-02-20T14:34:04.854198Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2017-02-20T14:34:04.854698Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2017-02-20T14:34:04.854698Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2017-02-20T14:34:04.854698Z 0 [Note] --secure-file-priv is set to NULL. Operations related to importing and exporting data are disabled
2017-02-20T14:34:04.855167Z 0 [Note] mysqld (mysqld 5.7.17) starting as process 11580 ...
2017-02-20T14:34:04.861186Z 0 [Note] InnoDB: Mutexes and rw_locks use Windows interlocked functions
2017-02-20T14:34:04.862184Z 0 [Note] InnoDB: Uses event mutexes
2017-02-20T14:34:04.862184Z 0 [Note] InnoDB: _mm_lfence() and _mm_sfence() are used for memory barrier
2017-02-20T14:34:04.862693Z 0 [Note] InnoDB: Compressed tables use zlib 1.2.3
2017-02-20T14:34:04.863187Z 0 [Note] InnoDB: Number of pools: 1
2017-02-20T14:34:04.863688Z 0 [Note] InnoDB: Not using CPU crc32 instructions
2017-02-20T14:34:04.866195Z 0 [Note] InnoDB: Initializing buffer pool, total size = 128M, instances = 1, chunk size = 128M
2017-02-20T14:34:04.875745Z 0 [Note] InnoDB: Completed initialization of buffer pool
2017-02-20T14:34:05.053218Z 0 [Note] InnoDB: Highest supported file format is Barracuda.
2017-02-20T14:34:05.220007Z 0 [Note] InnoDB: Creating shared tablespace for temporary tables
2017-02-20T14:34:05.221511Z 0 [Note] InnoDB: Setting file '.\ibtmp1' size to 12 MB. Physically writing the file full; Please wait ...
2017-02-20T14:34:05.371848Z 0 [Note] InnoDB: File '.\ibtmp1' size is now 12 MB.
2017-02-20T14:34:05.377208Z 0 [Note] InnoDB: 96 redo rollback segment(s) found. 96 redo rollback segment(s) are active.
2017-02-20T14:34:05.378215Z 0 [Note] InnoDB: 32 non-redo rollback segment(s) are active.
2017-02-20T14:34:05.383718Z 0 [Note] InnoDB: Waiting for purge to start
2017-02-20T14:34:05.450979Z 0 [Note] InnoDB: 5.7.17 started; log sequence number 2535372
2017-02-20T14:34:05.452480Z 0 [Note] Plugin 'FEDERATED' is disabled.
2017-02-20T14:34:05.453985Z 0 [Note] InnoDB: Loading buffer pool(s) from D:\Program Files\mysql-5.7.17-winx64\data\ib_buffer_pool
2017-02-20T14:34:05.533817Z 0 [Warning] Failed to set up SSL because of the following SSL library error: SSL context is not usable without certificate and private key
2017-02-20T14:34:05.539769Z 0 [Note] Server hostname (bind-address): '*'; port: 3306
2017-02-20T14:34:05.542777Z 0 [Note] IPv6 is available.
2017-02-20T14:34:05.544286Z 0 [Note] - '::' resolves to '::';
2017-02-20T14:34:05.549795Z 0 [Note] Server socket created on IP: '::'.
2017-02-20T14:34:05.673518Z 0 [Note] InnoDB: Buffer pool(s) load completed at 170220 22:34:05
2017-02-20T14:34:05.724159Z 0 [Note] Event Scheduler: Loaded 0 events
2017-02-20T14:34:05.724653Z 0 [Note] Executing 'SELECT * FROM INFORMATION_SCHEMA.TABLES;' to get a list of tables using the deprecated partition engine. You may use the startup option '--disable-partition-engine-check' to skip this check.
2017-02-20T14:34:05.729166Z 0 [Note] Beginning of list of non-natively partitioned tables
2017-02-20T14:34:05.755702Z 0 [Note] End of list of non-natively partitioned tables
2017-02-20T14:34:05.756210Z 0 [Note] mysqld: ready for connections.
Version: '5.7.17' socket: '' port: 3306 MySQL Community Server (GPL)
当看到最后 出现:
mysqld: ready for connections
Version: '5.7.17' socket: '' port: 3306
就表示启动OK啦。
连接数据库
命令:
官网的命令
shell> mysql -u root --skip-password
本机执行命令:
C:\Users\yutao>mysql -u root --skip-password
修改新密码
官网的命令:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
本机的命令:
mysql> alter user 'root'@'localhost' identified by 'root';
至此就OK啦。
通过命令行启动MySQL
上面已经讲过了。这里给出官网命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld"
那么如何停止呢?
命令:
C:\> "C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqladmin" -u root shutdown
这里给出官网解释: 如果MySQL root用户帐户有密码,则需要使用-p选项调用mysqladmin并在提示时提供密码。
此命令调用MySQL管理实用程序mysqladmin连接到服务器并告诉它关闭。该命令作为MySQL root用户连接,这是MySQL grant系统中的默认管理帐户。
启动MySQL作为Windows服务
将MySQL安装到window服务中
D:\Program Files\mysql-5.7.17-winx64\bin>mysqld --install
Service successfully installed.
注:这种安装方式,会使得MySQL服务,开机自动启动
启动MySQL
D:\Program Files\mysql-5.7.17-winx64\bin>net start mysql
结果:
MySQL 服务正在启动 . MySQL 服务已经启动成功。
停止MySQL
D:\Program Files\mysql-5.7.17-winx64\bin>net stop mysql
MySQL 服务正在停止.
MySQL 服务已成功停止。
删除MySQL服务
D:\Program Files\mysql-5.7.17-winx64\bin>mysqld --remove
Service successfully removed.