没有不值得去解决的问题,也没有不值得去学习的技术!

在 phpMyAdmin 中登录时,提示:mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]

在 phpMyAdmin 中登录时,提示:mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]。

1、在 phpMyAdmin 中登录时,提示:mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]。如图1

在 phpMyAdmin 中登录时,提示:mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]。
图1
Plaintext

mysqli::real_connect(): The server requested authentication method unknown to the client [caching_sha2_password]
mysqli::real_connect(): (HY000/2054): The server requested authentication method unknown to the client

2、从 MySQL 8.0 开始,默认的认证方法从 mysql_native_password 更改为 caching_sha2_password。虽然这种新方法更安全,但旧版本的 PHP(7.4 之前)和一些 MySQL 客户端库不支持它。

3、现在的环境要求是 PHP 7.3.9 与 MySQL 8.0。因此,需要将 MySQL 用户的认证方法改回 mysql_native_password。编辑 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini .在 [mysqld] 部分下添加以下行。如图2

现在的环境要求是 PHP 7.3.9 与 MySQL 8.0。因此,需要将 MySQL 用户的认证方法改回 mysql_native_password。编辑 C:\ProgramData\MySQL\MySQL Server 8.0\my.ini .在 [mysqld] 部分下添加以下行。
图2
Plaintext

[mysqld]

default_authentication_plugin=mysql_native_password

4、重启 MySQL80 服务,如图3

重启 MySQL80 服务
图3

5、登录时仍然报错,怀疑这个配置项只会影响到新创建的 MySQL 用户,而之前已经创建好的 root 用户未受到影响。因此,需要手动去更新 root 用户认证方法为 mysql_native_password。如图4

登录时仍然报错,怀疑这个配置项只会影响到新创建的 MySQL 用户,而之前已经创建好的 root 用户未受到影响。因此,需要手动去更新 root 用户认证方法为 mysql_native_password
图4

6、再次在 phpMyAdmin 中登录,登录成功。如图5

再次在 phpMyAdmin 中登录,登录成功
图5

关于作者 · 持续学习与技术实践

我是一名拥有 15 年以上开发经验的技术从业者,自 2013 年起持续运营个人技术博客,记录工作与个人项目中遇到的真实问题,以及解决问题过程中的探索、实践和思考。

除了技术写作,我也在持续开发和维护自己的独立项目,探索新技术和新工具在实际场景中的应用。我始终相信,没有不值得去解决的问题,也没有不值得去学习的技术。

如果这篇文章对你有所帮助,欢迎浏览博客中的其他文章,也欢迎交流技术经验与想法。

关于我  ·  GitHub  ·  邮件联系