Windows环境安装MySQL5.7.31

文章目录

  • 下载解压
  • 配置
  • 初始化
  • 安装启动
  • 查看临时密码
  • 登录及修改密码
  • 遇到的问题
  • navicat连接缓慢
  • navicat查询有异常
  • 时间不一致

下载解压

下载地址:https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.31-winx64.zip
我是下载到D盘,直接解压到当前目录

配置

修改(或者增加,不存在的话)配置文件,即目录下的my.ini文件
Windows环境安装MySQL5.7.31_第1张图片

配置内容如下,其中basedir需要设置自己的安装目录

[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录 这块换成自己解压的路径
basedir=D:\\mysql-5.7.31-winx64
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

保存关闭,为了后续操作方便,可以设置一个环境变量。

初始化

在命令行窗口中执行以下指令,来初始化MySQL
如果没有配置环境变量,需要进入安装目录/bin目录下执行

mysqld --initialize

初始化完成之后,会自动在安装目录下生成data目录
Windows环境安装MySQL5.7.31_第2张图片

安装启动

使用mysqld --install执行安装
在这里插入图片描述
使用net start mysql启动服务
在这里插入图片描述
停止指令为net stop mysql

查看临时密码

进入安装目录下/data文件内有一个*.err文件
打开后可以看到临时密码,我这里是1d/#xf3!.Nk6

2020-07-23T08:18:05.221825Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-07-23T08:18:07.472402Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-07-23T08:18:07.874587Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-07-23T08:18:08.019089Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 0a31e8ea-ccbd-11ea-bb1d-dcf401e6ae12.
2020-07-23T08:18:08.051813Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-07-23T08:18:11.056880Z 0 [Warning] CA certificate ca.pem is self signed.
2020-07-23T08:18:11.509636Z 1 [Note] A temporary password is generated for root@localhost: 1d/#xf3!.Nk6

登录及修改密码

登录方式和Linux一致,使用临时密码可正常登录
Windows环境安装MySQL5.7.31_第3张图片
登录成功后,强制要求修改密码,可直接使用以下语句执行

# 密码自定义
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

使用新的密码重新登录,可正常使用
Windows环境安装MySQL5.7.31_第4张图片

遇到的问题

之前安装过一次,没有卸载干净,在执行mysqld -install时出现服务已存在
在这里插入图片描述
解决办法:
输入命令sc query mysql 查看名为mysql的服务
输入命令sc delete mysql,删除该mysql
再执行mysqld --install即可
Windows环境安装MySQL5.7.31_第5张图片

navicat连接缓慢

在MySQL正常启动的情况下,在服务器本机连接数据库速度很快,但是在其它节点连接数据库,则非常慢,但是能连接上。
解决办法:
my.ini配置文件中[mysqld]项内增加以下参数

# 禁止域名解析
[mysqld]
...
skip-name-resolve
...

然后重启MySQL服务就行了。

navicat查询有异常

在navicat中执行命令,命令本身是可以执行的,但是执行后面还会出现如下的错误。

[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY
clause and contains nonaggregated column
‘information_schema.PROFILING.SEQ’ which is not functionally dependent
on columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by

首先查询sql_mode

# 查询
select version(), @@sql_mode;
# 结果
5.7.31	ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

思路是把ONLY_FULL_GROUP_BY这一项给取消掉

解决办法:
修改配置文件,编辑my.ini文件
my.ini配置文件中[mysqld]项内增加以下参数

[mysqld]
...
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
...

然后重启MySQL服务就行了。

时间不一致

当我用程序往数据库插入数据时,本地文本解析的时间明明是正确的,比如2020-07-07 00:03:00,但是数据里显示的却2020-07-06 11:03:00,前后差了13个时,网上搜了一番,说是CST时间的问题

mysql> show variables like '%TIME_ZONE%';
+------------------+--------+
| Variable_name    | Value  |
+------------------+--------+
| system_time_zone | CST    |
| time_zone        | SYSTEM |
+------------------+--------+

如果system_time_zone为空,time_zoneSYSTEM,则不用修改
如果system_time_zoneCST,则需要修改
解决办法:

# mysql命令行下执行
set global time_zone = '+08:00';
set time_zone = '+08:00';

或者修改配置文件

[mysqld]
...
default-time-zone = '+08:00'
...

你可能感兴趣的:(MySQL,mysql)