尝试使用 mysqli_connect 建立数据库连接时,您可能会遇到错误,指出“服务器请求客户端未知的身份验证方法 [caching_sha2_password]。”此错误是由于 MySQL 服务器上配置的身份验证方法与 PHP 代码支持的方法不匹配而引起的。
具体来说,MySQL 服务器 ini 文件将 default_authentication_plugin 设置为 caching_sha2_password。该插件提供了增强的安全性,但需要客户端支持该方法。但是,您的 PHP 代码使用默认的 MySQL 本机密码身份验证机制,该机制与 caching_sha2_password 不兼容。
要解决此问题,您有两个选择:
您可以将MySQL服务器ini文件中的default_authentication_plugin更改为mysql_native_password。这将允许您的 PHP 代码使用本机密码身份验证方法进行连接。
或者,您可以在 PHP 代码中指定要匹配的身份验证方法服务器的配置。这可以通过在调用 mysqli_connect() 之前使用 mysqli_options() 函数来完成。
mysqli_options(mysqli, MYSQLI_OPT_AUTH_PLUGIN, 'caching_sha2_password');
如果上述选项都不能解决问题,您可能需要更改尝试连接的特定用户的身份验证方法。这可以使用以下 SQL 命令来完成:
ALTER USER 'username'@'hostname' IDENTIFIED WITH mysql_native_password BY 'new_password';
通过实施这些解决方案,尽管服务器上设置了默认身份验证方法,您也可以使用 mysqli_connect 成功建立与 MySQL 的连接。
以上是如何修复 mysqli_connect 的 MySQL'未知身份验证方法 [caching_sha2_password]”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!