Navicat Premium连接MySQL报错:2059 - authentication plugin caching_sha2_password cannot be loaded

Navicat Premium 连接 MySQL 报错 2059 - authentication plugin caching_sha2_password cannot be loaded,通常是因为 MySQL 8.0 及以上版本默认使用了 caching_sha2_password 认证插件,而 Navicat 可能不支持该插件或未正确加载。

错误:

 Authentication plugin 'caching_sha2_password' cannot be loaded: dlopen(../Frameworks/caching_sha2_password.so, 0x0002): tried: '../Frameworks/caching_sha2_password.so' (no such file), '/System/Volumes/Preboot/Cryptexes/OS../Frameworks/caching_sha2_password.so' (no such file), '/Applications/Navicat Premium.app/Contents/Frameworks/../Frameworks/caching_sha2_password.so' (no such file), '/Applications/Navicat Premium.app/Contents/Frameworks/../Frameworks/caching_sha2_password.so' (no such file), '/usr/lib/.

image-20240623225429081

1. 通过终端登录 Mysql

 use mysql;

2. 查看 默认身份验证插件

show variables like 'default_authentication_plugin';

image-20240623224321059

可以看到 默认身份验证插件 为 caching_sha2_password

  • MySQL (8以上的版本)的默认加密方式为"caching_sha2_password"

3. 查看 MySQL本地用户的加密方式

select host,user, plugin from mysql.user;

image-20240623224604167

4.修改root用户的加密方式

'root'@'%' 'root' @'localhost' 都要用 mysql_native_password 加密

#  'root'@'%' 要用 mysql_native_password 加密
# BY 后面 可以设置 '自己想要的密码' 这里设置 root
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
#'root' @'localhost'
ALTER USER 'root' @'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
  1. 再次查看 MySQL本地用户的加密方式

select host,user, plugin from mysql.user;

image-20240623225353044

6. 再次启动 Navicat Premium 配置 mysql

image-20240623225557304