首页 > 数据库 > mysql教程 > 如何修复 PHP 中的'mysqli_connect:客户端未知的身份验证方法 [caching_sha2_password]”错误?

如何修复 PHP 中的'mysqli_connect:客户端未知的身份验证方法 [caching_sha2_password]”错误?

Patricia Arquette
发布: 2024-12-28 07:14:46
原创
892 人浏览过

How to Fix the

缓解 PHP 中的“mysqli_connect:客户端未知的身份验证方法 [caching_sha2_password]”

使用 MySQL 的 mysqli_connect 与本地数据库进行身份验证时,您可能会遇到神秘的错误,“mysqli_connect(): 服务器请求的身份验证方法未知到客户端 [caching_sha2_password]。”此错误是由于服务器使用的身份验证插件与客户端期望的身份验证插件不匹配而引起的。

MySQL Server ini 文件规定了用于服务器连接的默认身份验证插件。默认情况下,此设置配置为“caching_sha2_password”,表示服务器支持 caching_sha2_password 身份验证方法。在您的情况下,您的服务器已进行相应配置。

相反,您的 PHP 代码尝试使用旧版身份验证方法进行连接,例如“mysql_native_password”方法。这种不匹配会导致身份验证失败并导致上述错误。

解决方案

要解决此问题,您可以修改 PHP 代码使用的身份验证方法以匹配服务器的默认设置。或者,您可以更改 MySQL Server ini 文件以指定与 PHP 代码兼容的身份验证插件。以下是一些可能的解决方案:

  • 在 MySQL 服务器上启用 mysql_native_password 插件:

    • 打开 MySQL 服务器 ini 文件并找到“default_authentication_plugin”参数。
    • 将其值更改为"mysql_native_password."
  • 修改 PHP 代码以使用 caching_sha2_password 插件:

    • 利用 mysqli_options() 函数将 MYSQLI_OPT_AUTH_PLUGIN 选项设置为"caching_sha2_password."

或者,您可以使用 SQL 命令将 MySQL 用户的身份验证方法切换为 mysql_native_password:

  • 更改现有用户:

    • 运行SQL 命令: ALTER USER 'mysqlUsername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mysqlUsernamePassword';
  • 使用 mysql_native_password 创建新用户:

    • 运行 SQL 命令:创建用户'jeffrey'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';

通过实施这些解决方案,您可以协调 MySQL 服务器和 PHP 客户端使用的身份验证方法,让您成功建立与数据库的连接。

以上是如何修复 PHP 中的'mysqli_connect:客户端未知的身份验证方法 [caching_sha2_password]”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

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