使用 php mysqli_connect 建立与 MySQL 数据库的连接时,有可能遇到错误“连接到数据库时出错”,并显示特定消息“mysqli_connect():服务器请求客户端未知的身份验证方法 [caching_sha2_password]”。这种情况通常是由于 MySQL 服务器上配置的身份验证方法与客户端期望的不同而发生。
在这种情况下,PHP 脚本使用 caching_sha2_password 身份验证方法,该方法需要匹配 MySQL 用户表中定义的凭据。但是,user1 帐户似乎没有 caching_sha2_password 对应的密码哈希。
要解决此问题,您有几个选项:
为 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,允许其使用此方法进行身份验证。
对现有哈希强制使用 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中文网其他相关文章!