插件窝 干货文章 如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误

如何修复 MySQL 8.4 上的 mysql_native_password 未加载错误

MySQL password native Plugin 966    来源:    2025-03-30

解决 MySQL 8.4 上的 mysql_native_password 未加载错误

问题背景

MySQL 8.0+ 版本默认使用 caching_sha2_password 作为认证插件,而不再默认加载 mysql_native_password 插件。这可能导致以下错误:

Plugin mysql_native_password is not loaded

解决方案

方法1:启用 mysql_native_password 插件

  1. 编辑 MySQL 配置文件:

    sudo nano /etc/my.cnf
    

    sudo nano /etc/mysql/my.cnf
    
  2. [mysqld] 部分添加:

    default_authentication_plugin=mysql_native_password
    
  3. 保存并重启 MySQL 服务:

    sudo systemctl restart mysql
    

方法2:动态加载插件(无需重启)

  1. 登录 MySQL:

    mysql -u root -p
    
  2. 执行以下 SQL 命令:

    INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password.so';
    
  3. 验证插件是否加载:

    SELECT PLUGIN_NAME, PLUGIN_STATUS 
    FROM INFORMATION_SCHEMA.PLUGINS 
    WHERE PLUGIN_NAME = 'mysql_native_password';
    

方法3:更改用户认证方式

如果特定用户需要 native 认证:

  1. 登录 MySQL:

    mysql -u root -p
    
  2. 更改用户认证方式:

    ALTER USER 'username'@'host' IDENTIFIED WITH mysql_native_password BY 'password';
    FLUSH PRIVILEGES;
    

验证解决方案

  1. 检查当前默认认证插件:

    SHOW VARIABLES LIKE 'default_authentication_plugin';
    
  2. 检查用户使用的认证方式:

    SELECT user, plugin FROM mysql.user;
    

注意事项

  1. MySQL 8.0+ 推荐使用 caching_sha2_password 以增强安全性
  2. 如果必须使用 mysql_native_password,请确保这是业务必需且已评估安全风险
  3. 某些旧版客户端/连接器可能需要升级才能支持新的认证方式

希望这些解决方案能帮助您解决问题。如需进一步帮助,请提供更详细的错误信息。