数据库升级到新版本后,老版本的管理工具和采集程序全部连不上,报认证插件加载失败,新装的命令行客户端却一切正常。
排查方向其实有限,先把可能性排一排。默认认证方式换成了新的加密插件。少数情况下是客户端驱动版本过旧,不支持该插件。
另外,连接串里没有指定认证方式。
动手时先确认用户的认证插件
mysql -e "select user,host,plugin from mysql.user"
再往下按需改回兼容的认证方式
mysql -e "alter user 'u'@'%' identified with mysql_native_password by 'p'"
接着确认驱动版本
mysql --version
剩下的就是用应用账号实测连接
mysql -h 主机 -u 用户 -p -e 'select 1'
那几天正好在做别的变更,先把时间线对齐才敢动手。
别只看报错消失,验证要多做一步。老客户端能正常连接,用户认证方式与驱动能力匹配,日志不再报插件错误。
补一句。改认证插件要同步改密码,操作前确认应用配置里的连接方式;升级驱动才是长期方案,别只改数据库侧。报错文案容易误导,真正的原因往往在相邻那一层的日志里。