当我们用Navicat Premium连接MySQL时,点击连接测试,会出现报错:
Linux中Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded_Linux
错误信息为:

2059 - authentication plugin ‘caching_sha2_password’ cannot be loaded

在终端登录MySQL,查看加密方式,输入命令:

show variables like 'default_authentication_plugin';

结果显示:
Linux中Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded_Linux_02
这里应该是我改过的缘故,MySQL (8以上的版本)的默认加密方式为"caching_sha2_password"

我们再查看一下MySQL本地用户的加密方式,执行命令:

select host,user,plugin from mysql.user;

结果显示:
Linux中Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded_Linux_03
可以看到,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;

Linux中Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded_Linux_04
可以看到,我们root用户的加密方式已经改为“mysql_native_password”

现在我们再来连接测试一下。
Linux中Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded_Linux_05
连接成功!