这个问题在这里已经有答案了:
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中
我怎样才能解决这个问题?
8条答案
按热度按时间vltsax251#
作为我的config.inc.php文件,重新启动apache服务器,它就工作了。我仍然对此持怀疑态度,所以我停止了apache和mysql服务器,并再次启动它们,现在它开始工作了。
np8igboo2#
我正在用拉威尔流明来建立一个小的应用程序。
对我来说,这是因为我没有在我的.env文件中定义db\u用户名。
设置这个解决了我的问题。
s8vozzvw3#
我试过很多方法,但只有这个对我有用
感谢您的解决方案
检查你的.env
然后键入以下命令
(以root身份登录)
然后转到phpmyadmin并以以下身份登录:
主机->mysql
用户->根
密码->根
希望有帮助
xjreopfe4#
在my.cnf文件中,检查以下两个步骤。
检查此值-
旧密码=0;
应该是0。
也检查一下-
[mysqld]default\u authentication\u plugin=mysql\u native\u password要检查的另一个值是确保
[mysqld]部分应该是这样的。
8cdiaqws5#
你必须更改mysql设置。编辑my.cnf文件并将此设置放在mysqld部分:
然后运行以下命令:
上述命令将使默认身份验证机制的更改生效。
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命令行
运行命令刷新权限;
mbskvtky7#
@mohammed,这通常归因于mysql数据库使用的身份验证插件。
默认情况下,出于某种原因,mysql 8的默认插件是auth\u socket。应用程序通常希望使用密码登录到您的数据库。
如果您尚未更改mysql默认身份验证插件,可以通过以下方式进行更改:
1以root用户身份登录mysql
2运行以下sql命令:
用根密码替换“password”。如果应用程序没有使用root用户登录到数据库,请将上述命令中的“root”用户替换为应用程序使用的用户。
数字海洋在这里详细阐述了这一点
xfyts7mz8#
这里没有一个答案对我有用。我要做的是:
重新运行安装程序。
选择产品“mysql server”旁边的快速操作“重新配置”
浏览选项,直到找到身份验证方法并选择“使用旧身份验证方法”
在那之后就可以了。