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

我在PHP 7.0上运行MySQL版本8。


当我尝试从PHP连接到数据库时出现以下错误:


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


PHP可能显示此错误


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


我该如何解决这个问题?


慕标5832272
浏览 2223回答 3
3回答

精慕HU

这通常归因于您的mysql数据库正在使用的身份验证插件。默认情况下,由于某种原因,mysql 8的默认插件是auth_socket。应用程序通常会期望使用密码登录到数据库。如果尚未更改mysql默认身份验证插件,则可以通过以下方法进行更改:1.以root用户身份登录mysql2.运行以下sql命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_passwordBY 'password';  用您的根密码替换“密码”。如果您的应用程序没有以root用户身份登录到数据库,请用应用程序使用的用户替换上述命令中的'root'用户。数字海洋在这里阐述了更多有关此内容安装Mysql

holdtom

您必须更改MySQL设置。编辑my.cnf文件,并将此设置放在mysqld部分:[mysqld]default_authentication_plugin= mysql_native_password然后运行以下命令:FLUSH PRIVILEGES;上面的命令将使默认身份验证机制的更改生效。

犯罪嫌疑人X

我已经尝试了很多方法,但是只有这对我有用感谢您的解决方法检查您的**。envMYSQL_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希望对你有帮助
打开App,查看更多内容
随时随地看视频慕课网APP