mysql sha256_password已弃用填充日志的警告

enxuqcxy  于 12个月前  发布在  Mysql
关注(0)|答案(2)|浏览(204)

我已经在单主模式下配置了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路由器是唯一访问服务器的客户端,所以我怀疑它在抱怨它如何访问集群。
有谁知道如何修正这个警告吗?

6tr1vspr

6tr1vspr1#

我也遇到了同样的问题,警告正在填充我的错误日志,并且mysql.user表中的用户都没有使用sha256_password。正如blog post中所解释的,警告是误导性的,问题是一个未注册的用户试图登录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;

字符串

smdncfj3

smdncfj32#

设置mysql全局变量default_authentication_plugin对我有用。

mysql> show variables like 'default_authentication_plugin';

| Variable_name                 | Value                 |
| default_authentication_plugin | mysql_native_password |

字符串
使用chaching_sha2_password插件运行docker

#> docker run -it --rm mysql mysql -u root -p --default-authentication-plugin=caching_sha2_password


或者/etc/mysql/conf.d/mysql.cnf

相关问题