You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL错误日志被mysql_native_password弃用警告淹没,求助适配新认证插件

解决MySQL Router使用caching_sha2_password替代mysql_native_password的问题

问题根源

你遇到的情况是:MySQL InnoDB Cluster已将默认认证插件设为caching_sha2_password,但之前引导的MySQL Router实例对应的数据库用户仍使用mysql_native_password,每次连接都会触发弃用警告,导致日志暴涨。

解决方案步骤

1. 更新现有MySQL Router用户的认证插件

直接修改数据库中所有mysql_router前缀用户的认证插件,并重新生成符合caching_sha2_password要求的密码哈希:

-- 逐个更新所有mysql_router用户,替换为实际用户名和密码
ALTER USER 'mysql_router11_mqhk6m29wfw8'@'%' IDENTIFIED WITH caching_sha2_password BY '你的Router用户密码';
ALTER USER 'mysql_router12_kfpd8reiyr1c'@'%' IDENTIFIED WITH caching_sha2_password BY '你的Router用户密码';
ALTER USER 'mysql_router1_22dtj6g8hdu5'@'%' IDENTIFIED WITH caching_sha2_password BY '你的Router用户密码';
-- 重复执行上述命令覆盖所有mysql_router用户

执行完成后刷新权限:

FLUSH PRIVILEGES;

2. 验证MySQL Router配置兼容性

检查MySQL Router的配置文件(通常为/etc/mysqlrouter/mysqlrouter.conf),确保没有强制指定旧认证插件的配置项。新版本MySQL Router默认支持caching_sha2_password,无需额外配置,若发现类似以下内容需删除或修改:

# 若存在则删除或修改为caching_sha2_password
default_authentication_plugin = mysql_native_password

3. 重启MySQL Router实例

让配置和用户认证变更生效:

# 针对systemd系统
systemctl restart mysqlrouter
# 针对sysvinit系统
service mysqlrouter restart

4. 清理膨胀的错误日志(可选)

临时解决磁盘空间问题:

# 先备份日志文件
cp /var/log/mysql/error.log /var/log/mysql/error.log.$(date +%Y%m%d)
# 清空当前日志文件
truncate -s 0 /var/log/mysql/error.log

预防未来问题

后续新引导MySQL Router实例时,由于集群已设置default_authentication_plugin = caching_sha2_password,执行mysqlrouter --bootstrap命令时会自动创建使用caching_sha2_password的Router用户,无需额外配置。

内容的提问来源于stack exchange,提问作者Medjaro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.07 20:17:29