当使用 Navicat 连接 MySQL 时遇到错误提示 authentication plugin ‘caching_sha2_password’ cannot be loaded,通常是由于客户端工具不支持 MySQL 8.0 及以上版本默认使用的 caching_sha2_password 认证插件所致。以下是解决该问题的几种方法:
方法一:
更改 MySQL 用户的认证插件为 mysql_native_password
这是最直接且常用的解决方法。
1.登录 MySQL 服务器,使用具有管理员权限的用户登录 MySQL:
mysql -u root -p
2.选择 MySQL 数据库
USE mysql;
3.更改指定用户的认证插件将 your_username 替换为实际的用户名(一般是root),‘your_password’ 替换为用户的密码:
ALTER USER 'your_username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';
4.刷新权限
FLUSH PRIVILEGES;
5.退出 MySQL
EXIT;
6.重新连接 Navicat,尝试使用 Navicat 重新连接 MySQL,应该可以成功连接。
方法二:
升级 Navicat 到支持 caching_sha2_password 的版本如果你希望继续使用 caching_sha2_password 认证插件,可以升级 Navicat 至最新版本,因为较新的版本已经支持该认证方式。下载最新版本的 Navicat:访问 Navicat 官方网站 下载并安装最新版本。
重新连接 MySQL:安装完成后,使用 Navicat 重新尝试连接 MySQL。
方法三:
在 MySQL 服务器端配置默认认证插件,如果你有权限修改 MySQL 服务器的配置,并且希望所有新用户默认使用 mysql_native_password 认证插件,可以在 MySQL 配置文件(通常是 my.cnf 或 my.ini)中添加以下配置:
[mysqld]
default_authentication_plugin=mysql_native_password
步骤如下:
1.打开 MySQL 配置文件(如 my.cnf 或 my.ini)。
2.在 [mysqld] 部分添加上述行。
3.保存文件并重启 MySQL 服务:
对于 Linux 系统
sudo systemctl restart mysql
对于 Windows 系统
net stop MySQL
net start MySQL
注意:更改默认认证插件可能会影响新用户的创建和安全性,请谨慎操作。
方法四:
使用命令行工具临时切换认证插件
如果你只是临时需要连接,可以使用命令行工具以不同的用户身份连接,或使用 --default-authentication-plugin 参数:
mysql -u your_username -p --default-authentication-plugin=mysql_native_password
亲测方法一有效。