一、前言
- 个人主页: ζ小菜鸡
- 大家好我是ζ小菜鸡,小菜鸡日常掉坑,今天在本地搭建了一个MySQL服务器,通过后台可以正常访问,但是用Navicat连接Mysql数据库时出现1251报错,经过网上各种检索终于把问题解决了,特总结此篇,希望对遇到相同坑的小伙伴们有帮助。
- 如果文章对你有帮助、欢迎关注、点赞、收藏(一键三连)
二、错误信息
用Navicat软件连接MySQL数据库时,就弹出了一个1251报错问题,如下图所示:
翻译过来就是:客户端不支持服务器请求的认证协议,考虑升级MySQL客户端
三、分析问题
- 经过小菜鸡,多方检索,这种问题其实是加密规则的问题: 出现这个问题原因是mysql8之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password
- 解决办法:把mysql用户登录密码加密规则还原成mysql_native_password.
四、解决方法
1.打开cmd命令窗口,输入命令 mysql -u root -p 打开MySQL数据库,然后输入root账号的密码进行登录
2.在mysql中先更改加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
3.由于加密规则更改,所以需要重新设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
3.最后在刷新一下数据库
FLUSH PRIVILEGES;
这样我们再去连接MySQL服务时就可以成功连接了