使用Navicat连接MYSQL8免安装版报1005错误的解决方案

124 阅读1分钟

使用Navicat连接MYSQL8时可能报1005错误,如果是安装版需要在安装目录下找到my.ini配置文件并修改,如果使用的免安装版,则需要手动添加my.ini文件 image.png

1.查看sql_mode配置

SELECT @@GLOBAL.sql_mode;

发现结果是 ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTIO

1.如果是安装版的,去你的安装目录下找到my.ini文件

打开my.ini在mysqld下找到sql_mode配置,如果没有就手动添加,修改为如下

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

2.免安装版添加my.ini配置文件

Mysql8免安装版没有没有my.ini配置文件,需要手动添加,在你的mysql文件夹创建my.ini文件,添加内容

# 设置mysql客户端默认字符集
[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_bin
init_connect='SET NAMES utf8mb4'

innodb_buffer_pool_size = 128M

# 设置mysql的安装目录
basedir = C:\Users\koma\Desktop\mysql-8.0.11-winx64\mysql-8.0.11-winx64
datadir = C:\Users\koma\Desktop\mysql-8.0.11-winx64\mysql-8.0.11-winx64\data
# 设置端口
port = 3306

join_buffer_size = 128M
sort_buffer_size = 16M
read_rnd_buffer_size = 16M 
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重启mysql再次运行

SELECT @@GLOBAL.sql_mode;

发现结果改为了

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

使用navicat重新连接,错误解决!