mysql由原来一直使用的5.6切换到8版本,本地安装完成后,使用命令可以正常连接,但是使用navicat一直报2059的错误,如下图:
问题原因:
由于在MySql8之前的版本,默认的加密规则是mysql_native_password,而在MySql8后的版本,默认的加密规则已经调整为caching_sha2_password,由于Navicat不支持最新的caching_sha2_password加密规则,导致连接出错。
解决方案:
1.登录数据库
mysql -uroot -p
2.使用数据库
use mysql;
3.修改加密规则,其中123456为修改后的密码
ALTER USER 'root'@'%' IDENTIFIED BY '123456' PASSWORD EXPIRE NEVER;
4.修改密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '123456';5.刷新权限
FLUSH PRIVILEGES;
使用上述命令后,即可以navicat连接成功。