A: 我的日志中大量出现这个错误,如何对应

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

ChatGPT

此警告消息说明你正在使用已被弃用的 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中仍然可用,但考虑到未来的版本可能会移除它,建议计划并执行迁移。确保在生产环境中应用任何更改之前进行充分的测试。

A: 我选择不显示警告,请告诉我如何配置

ChatGPT

要禁止特定的警告消息,你可以使用 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

请注意,通过禁止这些警告,你可能会失去对将来可能的问题的警觉。确保定期审查你的配置和日志以确保系统的健康和安全。

Last modification:October 14, 2023
If you think my article is useful to you, please feel free to appreciate