mysqli_connect:身份验证方法未知(Caching_sha2_password)
背景:
使用 MySQL 的 mysqli_connect 时() 函数时,可能会出现错误:“错误: mysqli_connect():服务器请求客户端未知的身份验证方法。”这表明服务器使用的身份验证方法与客户端实现的身份验证方法不匹配。
具体来说,如果 MySQL 服务器设置为使用 caching_sha2_password 身份验证方法,则当客户端不支持时,可能会出现错误或未配置为使用该方法。
故障排除和解决方案:
在给定的情况下,MySQL 服务器配置为使用 caching_sha2_password 身份验证,而 PHP 客户端无法处理该身份验证。要解决此问题,您可以:
1.修改 MySQL 服务器配置:
将 MySQL 的 ini 文件(Windows 上为 my.ini,Linux 上为 /etc/my.cnf)中的 default_authentication_plugin 设置从 caching_sha2_password 更改为 mysql_native_password。这将允许服务器使用旧的身份验证方法。
2.更新 PHP 客户端:
将 PHP MySQL 客户端升级到支持 caching_sha2_password 身份验证的版本。但是,这可能不是必需的,因为服务器配置更改应该可以纠正问题。
3.设置用户身份验证:
在 MySQL 中运行以下 SQL 命令:
ALTER USER 'username'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
此命令会将指定用户的身份验证方法更改为 mysql_native_password,允许他们连接服务器的 caching_sha2_password 设置。
以上是为什么 mysqli_connect() 失败并显示'身份验证方法未知(Caching_sha2_password)”?的详细内容。更多信息请关注PHP中文网其他相关文章!