当我们用Navicat Premium连接MySQL时,点击连接测试,会出现报错:
错误信息为:
2059 - authentication plugin ‘caching_sha2_password’ cannot be loaded
在终端登录MySQL,查看加密方式,输入命令:
show variables like 'default_authentication_plugin';
结果显示:
这里应该是我改过的缘故,MySQL (8以上的版本)的默认加密方式为"caching_sha2_password"
我们再查看一下MySQL本地用户的加密方式,执行命令:
select host,user,plugin from mysql.user;
结果显示:
可以看到,root用户的加密方式为"caching_sha2_password"
但是Navicat Premium 不支持这种用户登录账户加密方式,所以我们就要修改用户登录账户加密方式,执行命令:
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
注意这里的 'root'@'%'
,是要根据你的user和host来写的,从上图中我们可以看到,我的 user 为 root,我的 host 为 %,所以我写为'root'@'%'
。
还有最后的 BY 'root'
,这里的’root’是你MySQL的密码。
再来查看一下MySQL本地用户的加密方式:
select host,user,plugin from mysql.user;
可以看到,我们root用户的加密方式已经改为“mysql_native_password”
现在我们再来连接测试一下。
连接成功!