Mysql之Windows安装
1. windows下安装mysql,有两种方式:
第一种,使用msi后缀的文件安装。
https://dev.mysql.com/downloads/file/?id=474803
这种方式安装简单,配置简单,点击下一步完成即可。我们生产使用的版本是mysql5.1,现在新下载的是mysql5.7。
这种方式只有32bit,但是它的二进制文件有32bit和64bit。
第二种,使用源码的方式。
这种方式免安装。https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.21-winx64.zip
下载解压缩到指定的目录下。
1. 把mysql的bin目录添加到系统环境变量。
添加到PATH的最后。
2. 执行mysqld初始化
启动mysqld,结果报错:
C:\Users\yangjianbo>mysqld
mysqld: Can't change dir to 'F:\mysql-5.7.20-win32\data\' (Errcode: 2 - No such
file or directory)
2017-12-02T03:34:27.606962Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is
deprecated. Please use --explicit_defaults_for_timestamp server option (see doc
umentation for more details).
2017-12-02T03:34:27.607962Z 0 [Note] --secure-file-priv is set to NULL. Operatio
ns related to importing and exporting data are disabled
2017-12-02T03:34:27.607962Z 0 [Note] mysqld (mysqld 5.7.20) starting as process
4344 ...
2017-12-02T03:34:27.611962Z 0 [Warning] Can't create test file F:\mysql-5.7.20-w
in32\data\yangjianbo-PC.lower-test
2017-12-02T03:34:27.612962Z 0 [Warning] Can't create test file F:\mysql-5.7.20-w
in32\data\yangjianbo-PC.lower-test
2017-12-02T03:34:27.612962Z 0 [ERROR] failed to set datadir to F:\mysql-5.7.20-w
in32\data\
2017-12-02T03:34:27.613963Z 0 [ERROR] Aborting
2017-12-02T03:34:27.613963Z 0 [Note] Binlog end
2017-12-02T03:34:27.613963Z 0 [Note] mysqld: Shutdown complete
解决方法:
因为我下载的是mysql5.7版本,默认没有data目录。
需要初始化一下,才能生成data目录。
mysqld --initialize-insecure --user=mysql (mysql5.7必须初始化,不然无法使用my.ini文件)
会自动创建一个data目录
然后执行mysqld,就把mysql服务启动了。
这样虽然mysqld可以起来,但是我希望还是自己定制一些参数,所以还需要my.ini文件,需要在F:\mysql-5.7.21-winx64目录下创建my.ini文件,并添加内容。
3. 在F:\mysql-5.7.21-winx64目录下创建my.ini文件,内容如下:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=F:\mysql-5.7.21-winx64 # 设置mysql数据库的数据的存放目录 datadir=F:\mysql-5.7.21-winx64\data # 允许最大连接数 max_connections=200 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default-storage-engine=INNODB sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
4. 新建my.ini以后,必须重新初始化一下,才能生效。
mysqld --initialize-insecure --user=mysql
结果报错:
C:\Users\Administrator>mysqld --initialize-insecure --user=mysql 2018-03-20T01:00:28.328113Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see doc umentation for more details). 2018-03-20T01:00:28.328113Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2018-03-20T01:00:28.328113Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s et. 2018-03-20T01:00:28.332113Z 0 [ERROR] --initialize specified but the data direct ory has files in it. Aborting. 2018-03-20T01:00:28.335113Z 0 [ERROR] Aborting
解决方法:
在my.ini中添加一句:explicit_defaults_for_timestamp=true
然后还有报错,如下:
C:\Users\Administrator>mysqld --initialize-insecure --user=mysql 2018-03-20T01:08:45.122528Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'E RROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release. 2018-03-20T01:08:45.122528Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not s et. 2018-03-20T01:08:45.126528Z 0 [ERROR] --initialize specified but the data direct ory has files in it. Aborting. 2018-03-20T01:08:45.129528Z 0 [ERROR] Aborting
把data目录下的文件清空,重新执行一下初始化。问题解决。
5. 把mysql添加为系统服务。
进入F:\mysql-5.7.21-winx64\bin目录下, 然后执行mysqld --install
6. Mysql5.6就不需要进行初始化。直接mysqld启动即可。
7. 为管理员root设置密码。
update mysql.user set authentication_string=password('SanMu@DaShu') where user='root';
flush privileges;

浙公网安备 33010602011771号