为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕标5832272 2019-11-28 09:58:10
我在PHP 7.0上运行MySQL版本8。当我尝试从PHP连接到数据库时出现以下错误:连接错误:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法PHP可能显示此错误警告:mysqli_connect():服务器在第10行的D:\ xampp \ htdocs \ reg \ server.php中请求客户端[caching_sha2_password]未知的身份验证方法我该如何解决这个问题?
查看完整描述

3 回答

?
精慕HU

TA贡献1845条经验 获得超8个赞

这通常归因于您的mysql数据库正在使用的身份验证插件。


默认情况下,由于某种原因,mysql 8的默认插件是auth_socket。应用程序通常会期望使用密码登录到数据库。


如果尚未更改mysql默认身份验证插件,则可以通过以下方法进行更改:

1.以root用户身份登录mysql

2.运行以下sql命令:


ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password

BY 'password';  

用您的根密码替换“密码”。如果您的应用程序没有以root用户身份登录到数据库,请用应用程序使用的用户替换上述命令中的'root'用户。


数字海洋在这里阐述了更多有关此内容安装Mysql


查看完整回答
反对 回复 2019-11-28
?
holdtom

TA贡献1805条经验 获得超10个赞

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


[mysqld]

default_authentication_plugin= mysql_native_password

然后运行以下命令:


FLUSH PRIVILEGES;

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


查看完整回答
反对 回复 2019-11-28
?
犯罪嫌疑人X

TA贡献2080条经验 获得超4个赞

我已经尝试了很多方法,但是只有这对我有用


感谢您的解决方法


检查您的**。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的

用户 ->根

密码 -> root

希望对你有帮助


查看完整回答
反对 回复 2019-11-28
  • 3 回答
  • 0 关注
  • 1935 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信