php with mysql 8.0+错误:服务器请求的身份验证方法客户端未知

bprjcwpo  于 2021-06-21  发布在  Mysql
关注(0)|答案(8)|浏览(442)

这个问题在这里已经有答案了

php mysqli\u connect:客户端未知的身份验证方法[缓存\u sha2\u密码](11个答案)
去年关门了。
我在php7.0上运行mysql版本8。
当我尝试从php连接到数据库时,出现以下错误:
连接错误:sqlstate[hy000][2054]服务器请求的身份验证方法客户端未知
php可能会显示此错误
警告:mysqli \u connect():服务器请求了客户端未知的身份验证方法[caching \u sha2 \u password],位于第10行的d:\xampp\htdocs\reg\server.php中
我怎样才能解决这个问题?

vltsax25

vltsax251#

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

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

np8igboo

np8igboo2#

我正在用拉威尔流明来建立一个小的应用程序。
对我来说,这是因为我没有在我的.env文件中定义db\u用户名。

DB_USERNAME=root

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

s8vozzvw

s8vozzvw3#

我试过很多方法,但只有这个对我有用
感谢您的解决方案
检查你的.env

MYSQL_VERSION=latest

然后键入以下命令

$ docker-compose exec mysql bash
$ mysql -u root -p

(以root身份登录)

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
ALTER USER 'default'@'%' IDENTIFIED WITH mysql_native_password BY 'secret';

然后转到phpmyadmin并以以下身份登录:
主机->mysql
用户->根
密码->根
希望有帮助

xjreopfe

xjreopfe4#

在my.cnf文件中,检查以下两个步骤。
检查此值-
旧密码=0;
应该是0。
也检查一下-
[mysqld]default\u authentication\u plugin=mysql\u native\u password要检查的另一个值是确保
[mysqld]部分应该是这样的。

8cdiaqws

8cdiaqws5#

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

[mysqld]
default_authentication_plugin= mysql_native_password

然后运行以下命令:

FLUSH PRIVILEGES;

上述命令将使默认身份验证机制的更改生效。

a8jjtwal

a8jjtwal6#

面对同样的问题,我无法使用mysql版本8运行wordpress docker容器,因为它的默认身份验证机制是缓存\u sha2\u密码而不是mysql\u本机\u密码。
为了解决这个问题,我们必须将默认的身份验证机制重置为mysql\u native\u password。
在mysql安装中找到my.cnf文件,通常在linux机器上,它位于以下位置-/etc/mysql
编辑my.cnf文件并在标题[mysqld]下添加以下行
默认\u身份验证\u插件=mysql\u本机\u密码
保存文件,然后使用root用户登录mysql命令行
运行命令刷新权限;

mbskvtky

mbskvtky7#

@mohammed,这通常归因于mysql数据库使用的身份验证插件。
默认情况下,出于某种原因,mysql 8的默认插件是auth\u socket。应用程序通常希望使用密码登录到您的数据库。
如果您尚未更改mysql默认身份验证插件,可以通过以下方式进行更改:
1以root用户身份登录mysql
2运行以下sql命令:

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';

用根密码替换“password”。如果应用程序没有使用root用户登录到数据库,请将上述命令中的“root”用户替换为应用程序使用的用户。
数字海洋在这里详细阐述了这一点

xfyts7mz

xfyts7mz8#

这里没有一个答案对我有用。我要做的是:
重新运行安装程序。
选择产品“mysql server”旁边的快速操作“重新配置”
浏览选项,直到找到身份验证方法并选择“使用旧身份验证方法”
在那之后就可以了。

相关问题