我在PHP 7.0上运行MySQL version 8。

当我试图从PHP连接到我的数据库时,我得到以下错误:

连接错误:SQLSTATE[HY000][2054]服务器请求客户端未知的身份验证方法

PHP可能会显示此错误

mysqli_connect():服务器请求的身份验证方法未知客户端[caching_sha2_password]在D:\xampp\htdocs\reg\server.php第10行

我该如何解决这个问题?


当前回答

这里没有一个答案对我有用。我要做的是:

重新运行安装程序。 选择产品“MySQL Server”旁边的快速操作“重新配置” 浏览选项,直到您到达身份验证方法,并选择“使用遗留身份验证方法”

之后就可以正常工作了。

其他回答

你必须改变MySQL设置。 编辑my.cnf文件,并将此设置放在mysqld部分:

[mysqld]
default_authentication_plugin= mysql_native_password

然后执行如下命令:

FLUSH PRIVILEGES;

该命令将使缺省认证机制的修改生效。

preferences -> mysql -> initialize database -> use legacy password encryption(instead of strong) -> entered same password

作为我的config.inc.php文件,重新启动apache服务器,它工作了。我仍然怀疑它,所以我停止了apache和mysql服务器,并再次启动它们,现在它正在工作。

我正在使用Laravel Lumen构建一个小应用程序。 对我来说,这是因为我没有在我的.env文件中定义DB_USERNAME。

DB_USERNAME=root

这个设置解决了我的问题。

在my.cnf文件检查以下2步。

检查这个值- old_passwords = 0; 它应该是0。 看看这个—— [mysqld] default_authentication_plugin= mysql_native_password另一个 价值的检查是为了确保 [mysqld]部分应该是这样的。

这里没有一个答案对我有用。我要做的是:

重新运行安装程序。 选择产品“MySQL Server”旁边的快速操作“重新配置” 浏览选项,直到您到达身份验证方法,并选择“使用遗留身份验证方法”

之后就可以正常工作了。