首页 > 数据库 > mysql教程 > 为什么 mysqli_connect() 失败并显示'身份验证方法未知(Caching_sha2_password)”?

为什么 mysqli_connect() 失败并显示'身份验证方法未知(Caching_sha2_password)”?

Mary-Kate Olsen
发布: 2024-12-21 22:54:34
原创
897 人浏览过

Why Does mysqli_connect() Fail with

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中文网其他相关文章!

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