MENU

MySQL8 将mysql_native_password修改为caching_sha2_password

January 6, 2026 • MySQL

通过宝塔面板默认安装的MySQL8.0版本默认使用的身份认证插件是mysql_native_password,然后再错误日志里一直提示mysql_native_password' is deprecated and will be removed in a future release. Please use caching_sha2_password instead',所以通过下面的操作可以解决错误日志的警告,以及更换到性能更好的caching_sha2_password instead方式。

请输入图片描述

1. 检查当前用户插件

登录MySQL,执行以下SQL命令查看哪些用户仍使用mysql_native_password

mysql> SELECT user, host, plugin FROM mysql.user WHERE plugin = 'mysql_native_password';
+------+-----------+-----------------------+
| user | host      | plugin                |
+------+-----------+-----------------------+
| root | localhost | mysql_native_password |
+------+-----------+-----------------------+
1 row in set (0.00 sec)

2. 更新用户身份验证插件

对于每个列出的用户,执行以下命令将其更改为caching_sha2_password。我这里目前是新安装的MySQL,所以目前只有root这一个用户。如果你有多个,请一条一条修改。

#示例 ALTER USER '用户名'@'主机名' IDENTIFIED WITH caching_sha2_password BY '新密码';

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'e548561a19b03546';

将上面的用户名 主机名新密码替换为你自己的,新密码也可以保持原样。

3. 修改MySQL配置文件

  • 编辑MySQL配置文件 (通常是 my.cnfmy.ini).
  • [mysqld]段落中添加或修改以下行来设置默认插件.

    default_authentication_plugin=caching_sha2_password

4. 重启MySQL服务

  • 修改配置文件后,必须重启MySQL服务使更改生效.
  • 如果不想重启的情况下,可以执行 FLUSH PRIVILEGES;来刷新用户信息和权限设置,立刻生效