3

我已经在单主模式下配置了 InnoDB MySQL v8.0.19 组复制集群。根据建议的模式,我有几个 webapps 通过他们自己的 MySQL 路由器实例以 1:1 的关系访问集群。

一切似乎都运行良好,但我的主服务器的日志中充满了以下消息:

[警告] [MY-013360] [服务器] 插件 sha256_password 报告:''sha256_password' 已弃用,将在未来版本中删除。请改用cache_sha2_password'

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

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

任何人都知道如何解决这个警告?

4

2 回答 2

2

我遇到了同样的问题,警告正在填满我的错误日志,而且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;
于 2021-08-11T08:12:52.403 回答
1

ALTER USER可以更改身份验证插件:

ALTER USER usernmae@remoteip
IDENTIFIED WITH 'caching_sha2_password'
   RETAIN CURRENT PASSWORD
于 2020-05-15T01:34:40.733 回答