sha256_password 已弃用警告填充日志

cod*_*ner 11 mysql mysqlrouter

我已经在单主模式下配置了 InnoDB MySQL v8.0.19 组复制集群。我有几个 Web 应用程序按照建议的模式通过它们自己的 MySQL Router 实例以 1:1 关系访问集群。

一切似乎都工作正常,但我的主服务器的日志中充满了以下消息:

[Warning] [MY-013360] [Server] Plugin sha256_password reported: ''sha256_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead'
Run Code Online (Sandbox Code Playgroud)

转储该mysql.user表,我发现生成的 mysql_router 用户正在使用“mysql_native_password”插件,而所有其他用户都使用正确的“caching_sha2_password”插件。

这些 mysql 路由器是访问服务器的唯一客户端,所以我怀疑它在抱怨它如何访问集群。

有人知道如何解决这个警告吗?

小智 9

我遇到了同样的问题,警告填满了我的错误日志,而且表中没有用户mysql.user使用sha256_password. 正如这篇博文中所解释的,该警告具有误导性,问题是未注册用户试图登录 MySQL。

我们看到有关 的警告sha256_password而不是访问被拒绝错误的原因是:

当未找到用户名时,MySQL会随机分配一个身份验证插件并进行身份验证,最终拒绝该用户名

如上面链接的博客文章中所述,您可以使用连接控制插件来识别未注册的用户:

INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.so';

INSTALL PLUGIN CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS SONAME 'connection_control.so';

select * from information_schema.CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS;
Run Code Online (Sandbox Code Playgroud)