首页 >后端开发 >php教程 >为什么 mysqli_connect 失败并显示'客户端未知身份验证方法 [caching_sha2_password]”以及如何修复它?

为什么 mysqli_connect 失败并显示'客户端未知身份验证方法 [caching_sha2_password]”以及如何修复它?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-12-15 08:27:10649浏览

Why is mysqli_connect Failing with

克服 mysqli_connect 中的身份验证挑战

mysqli_connect 函数简化了 PHP 中的数据库连接。但是,当尝试使用 caching_sha2_password 身份验证连接到 MySQL 数据库时,用户可能会遇到身份验证问题。本文探讨了此问题的根本原因并提供了解决方案。

问题

在提供的代码片段中,MySQL Server ini 文件中的 default_authentication_plugin 设置为设置为 caching_sha2_password。此配置可防止用户使用没有相应 caching_sha2_password 的用户名进行身份验证。结果,显示错误消息“服务器请求客户端未知的身份验证方法 [caching_sha2_password]”。

解决方案

要解决此问题,您可以:

  • 更改default_authentication_plugin 设置:

    • 设置为 mysql_native_password,允许 user1 登录,但不允许 user2 登录。
  • 修改用户身份验证:

    • 使用 ALTER USER SQL 命令更改 user1 和 user2 的密码,使其与 caching_sha2_password 兼容:

      • For现有用户:

        • 更改用户'mysqlUsername'@'localhost' 通过 'mysqlUsernamePassword' 识别 mysql_native_password;
      • 对于新用户:

        • 创建用户 'jeffrey'@' localhost' 通过 mysql_native_password 识别'password';

实现

修改身份验证插件设置后或用户密码,mysqli_connect代码将成功建立与MySQL的连接

结论

通过了解底层身份验证问题并实现所提供的任一解决方案,您可以克服使用时出现的“客户端未知的身份验证方法”错误mysqli_connect 与 caching_sha2_password 身份验证。

以上是为什么 mysqli_connect 失败并显示'客户端未知身份验证方法 [caching_sha2_password]”以及如何修复它?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn