MySQL报错的分类与解决方法
无法插入中文字符
报错内容:
1366 - Incorrect string value: ‘\xE6\x9B\xBE\xE5\x8D\x8E’ for column ‘sname’ at row 1
原因
MySQL默认配置:
variable_name value character_set_database latin1 character_set_server latin1 可通过
SHOW VARIABLES LIKE '%char%';
查看。解决方法
修改
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
:找到
[mysql]
在下方添加
default-character-set=utf8
找到
[mysqld]
在下方添加
character-set-server=utf8
找到
[client]
在下方添加
default-character-set=utf8
重启MySQL,重新登录
Win
+R
- services.msc找到MySQL57(57为版本号),右键选择重新启动
Win
+R
- cmd(或cmder)通过
mysql -u -root -p
命令并输入密码后访问数据库。通过
SHOW VARIABLES LIKE '%char%';
查看,字符集变为utf8即成功修改。
Navicat连接数据库报错
报错内容:
2059 - Authentication plugin ‘caching_sha2_password’ cannot be loaded
原因:
MySQL8之前的版本中加密规则为mysql_native_password,而在MySQL8以后的加密规则为caching_sha2_password。
解决方法:
在命令行中登录MySQL后,使用命令行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';