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

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

Mary-Kate Olsen
发布: 2024-12-15 08:27:10
原创
649 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板