关于MySQL 8.4中mysql_native_password被禁用的问题,这是由于MySQL官方从8.4版本开始,已将此旧的认证插件默认设置为不加载。
这个问题通常在你升级数据库或使用旧的客户端时,遇到类似 Plugin 'mysql_native_password' is not loaded 的错误。根据官方计划,此插件已被弃用,并将在未来版本中移除。
参考下面的解决方案:
⚠️ 重新启用旧插件
如果短期内无法让所有应用程序适配新的认证方式,可以临时重新启用 mysql_native_password 插件作为过渡。请注意,这只是权宜之计。
编辑配置文件:找到MySQL的配置文件
my.cnf(Linux) 或my.ini(Windows)。在[mysqld]配置段下添加一行:[mysqld] mysql_native_password=ON重启MySQL服务:保存配置文件后,重启MySQL服务使配置生效。
Linux:
sudo systemctl restart mysqld(服务名可能为mysql或mariadb)Windows:在服务管理器中重启,或使用命令
net stop mysql84和net start mysql84(服务名可能不同)。
修改用户插件:服务重启后,仍需将特定用户的认证插件改回
mysql_native_password:ALTER USER '用户名'@'主机名' IDENTIFIED WITH mysql_native_password BY '你的密码'; FLUSH PRIVILEGES;
💡 如何确认问题与选择
在操作前,你可以通过以下命令确认用户当前使用的认证插件:
SELECT user, host, plugin FROM mysql.user WHERE user = '你的用户名';如果 plugin 列显示为 mysql_native_password,则说明该用户正受此问题影响。
你可以根据以下情况做出选择:
全新安装或可接受修改:无脑选择推荐方案,直接切换到
caching_sha2_password。升级后为兼容大量旧应用:先使用临时方案快速恢复服务,同时制定计划,逐步将应用迁移至新认证方式。
评论