首页 > 后端开发 > php教程 > 如何修复 mysqli_connect 的 MySQL'未知身份验证方法 [caching_sha2_password]”错误?

如何修复 mysqli_connect 的 MySQL'未知身份验证方法 [caching_sha2_password]”错误?

Susan Sarandon
发布: 2024-12-13 19:10:11
原创
539 人浏览过

How to Fix MySQL's

使用 mysqli_connect 解决 MySQL 身份验证错误:“未知身份验证方法 [caching_sha2_password]”

尝试使用 mysqli_connect 建立数据库连接时,您可能会遇到错误,指出“服务器请求客户端未知的身份验证方法 [caching_sha2_password]。”此错误是由于 MySQL 服务器上配置的身份验证方法与 PHP 代码支持的方法不匹配而引起的。

具体来说,MySQL 服务器 ini 文件将 default_authentication_plugin 设置为 caching_sha2_password。该插件提供了增强的安全性,但需要客户端支持该方法。但是,您的 PHP 代码使用默认的 MySQL 本机密码身份验证机制,该机制与 caching_sha2_password 不兼容。

要解决此问题,您有两个选择:

选项 1:更改身份验证插件MySQL服务器

您可以将MySQL服务器ini文件中的default_authentication_plugin更改为mysql_native_password。这将允许您的 PHP 代码使用本机密码身份验证方法进行连接。

选项 2:在 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中文网其他相关文章!

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