我已经在单主模式下配置了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'
字符串
转储mysql.user
表,我看到生成的mysql_router用户使用的是'mysql_native_password'插件,所有其他用户使用的是正确的'caching_sha2_password'插件。
这些mysql路由器是唯一访问服务器的客户端,所以我怀疑它在抱怨它如何访问集群。
有谁知道如何修正这个警告吗?
2条答案
按热度按时间6tr1vspr1#
我也遇到了同样的问题,警告正在填充我的错误日志,并且
mysql.user
表中的用户都没有使用sha256_password
。正如blog post中所解释的,警告是误导性的,问题是一个未注册的用户试图登录MySQL。我们之所以看到有关
sha256_password
的警告,而不是访问拒绝错误,是因为:当找不到用户名时,MySQL会随机分配一个身份验证插件,并继续进行身份验证,最后拒绝它
如上面链接的博客文章所述,您可以使用连接控制插件来识别未注册的用户:
字符串
smdncfj32#
设置mysql全局变量default_authentication_plugin对我有用。
字符串
使用chaching_sha2_password插件运行docker
型
或者/etc/mysql/conf.d/mysql.cnf