ER_NOT_SUPPORTED_AUTH_MODE
      ER_NOT_SUPPORTED_AUTH_MODE
      
    
    
    
  
  错误提示 Plugin 'mysql_native_password' is not loaded 说明 MySQL 中没有加载 mysql_native_password 插件,导致无法使用该认证方式。这通常是因为 MySQL 配置中禁用了该插件,或插件文件缺失。
解决方法:启用 mysql_native_password 插件
1. 检查插件是否安装
登录 MySQL 后,执行以下命令查看已安装的插件:
1
SHOW PLUGINS;
在输出中查找 mysql_native_password,如果没有则需要手动加载。
2. 临时加载插件(重启 MySQL 后失效,适合测试)
在 MySQL 命令行中直接加载插件:
1
INSTALL PLUGIN mysql_native_password SONAME 'mysql_native_password.so';
- 若提示 Plugin is already installed,说明插件已存在,直接进入步骤 3。
- 若执行成功,插件会被临时加载,可继续修改用户认证方式。
3. 永久启用插件(推荐,避免重启后失效)
需要修改 MySQL 配置文件,确保插件在启动时自动加载:
- 编辑 MySQL 配置文件(通常为 /etc/my.cnf或/etc/mysql/my.cnf):1 vim /etc/my.cnf 
- 在 [mysqld]段落下添加以下内容:1 2 3 [mysqld] plugin-load-add = mysql_native_password.so mysql_native_password = ON 
- 保存文件并重启 MySQL 服务:
    1 systemctl restart mysqld 
4. 重新修改用户认证方式
插件加载成功后,再次执行修改用户的命令:
1
2
ALTER USER 'waline'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
5. 验证结果
确认用户 waline 的认证插件已改为 mysql_native_password:
1
SELECT user, host, plugin FROM mysql.user WHERE user = 'waline' AND host = '%';
补充说明
- mysql_native_password是 MySQL 的内置插件,通常随 MySQL 一起安装,缺失的情况较少见。若步骤 2 提示插件文件不存在,可能是 MySQL 安装不完整,建议重新安装官方版本的 MySQL。
- 操作完成后,依赖 waline用户的应用(如 Waline 服务)需重启以重新建立连接。
按照以上步骤,即可解决插件未加载的问题,顺利修改用户认证方式。
        
          
          本文由作者按照 
        
          CC BY 4.0
        
         进行授权