MySQL 8.0+ 版本默认使用 caching_sha2_password
作为认证插件,而不再默认加载 mysql_native_password
插件。这可能导致以下错误:
Plugin mysql_native_password is not loaded
编辑 MySQL 配置文件:
sudo nano /etc/my.cnf
或
sudo nano /etc/mysql/my.cnf
在 [mysqld]
部分添加:
default_authentication_plugin=mysql_native_password
保存并重启 MySQL 服务:
sudo systemctl restart mysql
登录 MySQL:
mysql -u root -p
执行以下 SQL 命令:
INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password.so';
验证插件是否加载:
SELECT PLUGIN_NAME, PLUGIN_STATUS
FROM INFORMATION_SCHEMA.PLUGINS
WHERE PLUGIN_NAME = 'mysql_native_password';
如果特定用户需要 native 认证:
登录 MySQL:
mysql -u root -p
更改用户认证方式:
ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
FLUSH PRIVILEGES;
检查当前默认认证插件:
SHOW VARIABLES LIKE 'default_authentication_plugin';
检查用户使用的认证方式:
SELECT user, plugin FROM mysql.user;
caching_sha2_password
以增强安全性mysql_native_password
,请确保这是业务必需且已评估安全风险希望这些解决方案能帮助您解决问题。如需进一步帮助,请提供更详细的错误信息。