2023-10-14T03:03:44.030502Z 9272 [Warning] [MY-013360] [Server] Plugin mysql_native_password reported: ''mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead
此警告消息说明你正在使用已被弃用的 mysql_native_password 身份验证插件,并建议你转移到新的 caching_sha2_password 插件。
从MySQL 8.0开始,caching_sha2_password 是默认的身份验证插件。它提供了更好的安全性,但在迁移时可能需要一些考虑:
- 兼容性:
不是所有的MySQL客户端库都支持 caching_sha2_password。在更改默认的身份验证插件之前,确保你的应用程序和任何其他与数据库交互的工具都支持新的插件。 更改用户的身份验证方法:
你可以为每个用户更改身份验证插件:ALTER USER 'username'@'host' IDENTIFIED WITH 'caching_sha2_password';
注意:这可能会影响用户的登录,所以请确保你已经测试并确认客户端兼容性。
更改默认的身份验证插件:
如果你决定全面采用 caching_sha2_password,你可以在 my.cnf 或 mysqld.cnf 文件中更改默认的身份验证插件:[mysqld]
default_authentication_plugin=caching_sha2_password
然后重启MySQL服务。
- 连接需求:
使用 caching_sha2_password 可能需要SSL/TLS连接。如果你的MySQL服务器没有启用SSL/TLS,你可能需要配置它或使用不同的身份验证方法。 - 不显示警告:
如果你决定暂时继续使用 mysql_native_password 并且不想看到警告,可以考虑配置MySQL日志以忽略这些警告。但是,最好的方法是考虑迁移到推荐的身份验证方法。
总之,虽然 mysql_native_password 在MySQL 8.0中仍然可用,但考虑到未来的版本可能会移除它,建议计划并执行迁移。确保在生产环境中应用任何更改之前进行充分的测试。
要禁止特定的警告消息,你可以使用 log_error_suppression_list 配置选项。这允许你指定一个逗号分隔的错误代码列表,这些错误不应该被写入错误日志。
在你的情况下,要禁止关于 mysql_native_password 插件被弃用的警告,你可以按照以下步骤操作:
打开你的 MySQL 配置文件 my.cnf 或 mysqld.cnf。
在 [mysqld] 部分,添加以下行:
log_error_suppression_list='MY-013360'
这告诉 MySQL 服务器不要记录错误代码为 MY-013360 的错误。
保存文件并退出编辑器。
重启 MySQL 服务以应用更改。这可能是:
sudo systemctl restart mysql
或者
sudo service mysql restart
请注意,通过禁止这些警告,你可能会失去对将来可能的问题的警觉。确保定期审查你的配置和日志以确保系统的健康和安全。