首页 > 数据库 > mysql教程 > 如何修复'mysqli_connect():服务器请求客户端未知的身份验证方法 [caching_sha2_password]”错误?

如何修复'mysqli_connect():服务器请求客户端未知的身份验证方法 [caching_sha2_password]”错误?

Mary-Kate Olsen
发布: 2024-12-13 00:38:10
原创
514 人浏览过

How to Fix the

解决 php mysqli_connect 的“mysqli_connect: 身份验证方法未知到客户端 [caching_sha2_password]”错误

使用 php mysqli_connect 建立与 MySQL 数据库的连接时,有可能遇到错误“连接到数据库时出错”,并显示特定消息“mysqli_connect():服务器请求客户端未知的身份验证方法 [caching_sha2_password]”。这种情况通常是由于 MySQL 服务器上配置的身份验证方法与客户端期望的不同而发生。

在这种情况下,PHP 脚本使用 caching_sha2_password 身份验证方法,该方法需要匹配 MySQL 用户表中定义的凭据。但是,user1 帐户似乎没有 caching_sha2_password 对应的密码哈希。

要解决此问题,您有几个选项:

  1. 使用 mysql_native_password身份验证:将 MySQL Server ini 文件中的 default_authentication_plugin 设置更改为mysql_native_password,与 user1 的密码哈希兼容。这将允许 user1 成功登录。
  2. 为 user1 创建 caching_sha2_password 密码哈希:发出以下 SQL 命令为 user1 创建 caching_sha2_password 哈希:

    ALTER USER 'user1'@'localhost' IDENTIFIED WITH mysql_native_password BY 'new_password';
    登录后复制

    将“new_password”替换为您选择的安全密码。这将更新 user1 的密码哈希以使用 caching_sha2_password,允许其使用此方法进行身份验证。

  3. 对现有哈希强制使用 caching_sha2_password:如果您无法创建新的密码哈希由于帐户限制,您可以强制对现有哈希使用 caching_sha2_password。发出以下 SQL 命令:

    SET PASSWORD FOR 'user1'@'localhost' = PASSWORD('existing_password');
    登录后复制

    将 'existing_password' 替换为 user1 的当前密码。这将更新哈希以使用 caching_sha2_password,而无需更改密码本身。

执行这些过程之一后,您应该能够使用 caching_sha2_password 身份验证成功建立与数据库的连接。请记住查看 MySQL 文档以获取密码管理的更多详细信息和选项。

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

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