2059-Authentication plugin ‘caching_sha2_password‘ cannot be loaded
遇到错误信息 “2059-Authentication plugin ‘caching_sha2_password’ cannot be loaded” 通常是因为 MySQL 或 MariaDB 尝试使用 caching_sha2_password 认证插件,但该插件不可用或配置不正确。
这个问题通常出现在客户端不支持该认证方法的情况下,特别是当 MySQL 客户端是较老的版本时。
下面是几种解决方法:
1. 更新 MySQL 客户端
- 确保你使用的 MySQL 客户端或连接器支持 caching_sha2_password 认证插件。这个插件是 MySQL 8.0
版本引入的,某些较老版本的客户端(例如 MySQL Workbench 或某些编程库)可能不支持。 - MySQL 命令行客户端: 确保你使用的是 MySQL 8.0 或更高版本。 Python(MySQL 连接器): 如果使用Python,确保 mysql-connector-python 或 PyMySQL 库是最新的。
2. 修改 MySQL 用户的认证插件
如果更新客户端后问题没有解决,你可以将用户的认证插件改为 mysql_native_password,这是一个更广泛支持的认证插件。
执行以下步骤:
- 以管理员身份登录 MySQL:
mysql -u root -p
- 执行以下 SQL 命令来修改指定用户的认证插件:
ALTER USER '用户名'@'主机' IDENTIFIED WITH mysql_native_password BY '密码';
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
- 刷新权限:
FLUSH PRIVILEGES;
使用更新后的凭证再次尝试连接。
3. 检查 MySQL 配置文件
在某些情况下,MySQL 服务器的配置可能缺少 caching_sha2_password 插件,或者插件没有正确加载。
检查 MySQL 配置文件(my.cnf 或 my.ini)中的 [mysqld] 部分是否有以下配置:
plugin-load-add=caching_sha2_password.so
如果没有,可以添加此行并重启 MySQL。
4. 使用支持 MySQL 8.0 的客户端
如果你使用的是第三方客户端(如 MySQL Workbench 或其他数据库工具),确保使用的是支持 MySQL 8.0 和其认证插件的版本。旧版本的客户端可能不支持新的 caching_sha2_password 插件。