mysql 的安装配置并不难,但一步错误可能会纠结很久,本文描述了 windows 下的 mysql 安装和配置。

MySQL 是一个小巧玲珑但功能强大的数据库,目前十分流行。但是官网给出的安装包有两种格式,一个是 msi 格式,一个是 zip 格式的。本人一开始使用的是 msi 格式,安装了一半,各种配置失效没能完成,这边建议还是使用传统的 zip 包手动安装。具体安装步骤如下:

修改环境变量

我的电脑->属性->高级->环境变量选择 PATH,在其后面添加: 你的mysql bin文件夹的路径 (如:C:\Program Files\MySQL\MySQL Server 5.6\bin ) PATH=.......;C:\Program Files\MySQL\MySQL Server 5.6\bin (注意是追加,不是覆盖)。

配置默认文件

在mysql-x.x.xx-winx64(小编的是5.6.17根据自己的版本来定)目录下,新建个my.ini。复制下面的代码保存就ok了。my.ini 会替换掉下面的 my-default.ini 文件。.ini 文件是 window 里面的配置文件。保存里面各种默认的数据。(把里面 D:\mysql\mysql-5.6.17-winx64 改成你自己的软件路径,保存。my.ini 必须得是 ASSIC 格式的文件,最好新建 txt 文件更改后缀,通过其他方式得到的 ini 文件可能会失效)。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.6.17-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.6.17-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

初始化数据目录

你可能发现你的目录中没有data目录,这是因为mysql从5.7.6开始,zip archive中不再包含 data 目录,怎么办?

这恰恰是最关键的一步,很多教程偏老,没有提到 data 目录,一些用户自己手动创建该目录都可能造成后续错误,建议使用 initialize 来完成相关初始化。

在面的搜索栏里面输入cmd,上面会出来一个cmd.exe,要右键这个cmd.exe选择一管理员的身份运行这个选项。否则可能会出现一个身份不够的错误码。以管理员身份打开cmd窗口后,将目录切换到你解压文件的bin目录,具体命令如:

1
2
3
D:
CD D:\mysql\mysql-5.6.17-winx64\bin
mysqld --initialize

安装mysql服务

在 cmd 窗口下,继续下面内容,再输入 mysqld install 回车运行就行了(注意是mysqld,不是mysql),如果出现服务已经存在,可以使用 mysqld remove 进行删除,再用 mysqld install 重新安装。

输入 net start mysql 启动服务,如果出现系统错误2,则是系统找不到指定的文件,因为安装服务路径不对,查看 my.ini 文件中路径是否正确,再执行 mysqld remove ,在mysql目录下安装服务重新执行上述安装步骤。

输入 net start mysql 启动服务,如果需要关闭服务可以使用 net stop mysql 命令。

设置密码

此时 mysql 没有密码,需要进行设置密码,输入:mysqladmin -u root password 设置密码,再输入 mysql -u root -p 即可登录。

目前出现问题:mysqladmin -u root password 后显示 connect to server at localhost failed,但使用多个方法都无法修改密码。

参考链接:
https://jingyan.baidu.com/article/f3ad7d0ffc061a09c3345bf0.html
https://www.cnblogs.com/fnlingnzb-learner/p/6009153.html
https://blog.csdn.net/liyangyang0528/article/details/54233632
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html