PHP与MySQL 8.0+错误:服务器请求客户端未知的身份验证方法[重复]
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP与MySQL 8.0+错误:服务器请求客户端未知的身份验证方法[重复]相关的知识,希望对你有一定的参考价值。
这个问题在这里已有答案:
当我尝试从PHP连接到我的数据库时,我收到以下错误:
连接错误:SQLSTATE [HY000] [2054]服务器请求客户端未知的身份验证方法
PHP可能会显示此错误
警告:mysqli_connect():服务器在第10行的D: xampp htdocs reg server.php中请求客户端[caching_sha2_password]未知的身份验证方法
我该如何解决这个问题?
@mohammed,这通常归因于你的mysql数据库正在使用的身份验证插件。
默认情况下,出于某种原因,mysql 8默认插件是auth_socket。应用程序大多数时候都希望使用密码登录您的数据库。
如果您尚未更改mysql默认身份验证插件,可以通过以下方式执行此操作: 1.以root身份登录到mysql 2.运行此sql命令:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password
BY 'password';
用root密码替换'password'。如果您的应用程序未使用root用户登录到您的数据库,请将上述命令中的“root”用户替换为您的应用程序使用的用户。
数字海洋在这里对Installing Mysql进行了更多阐述
您必须更改MySQL设置。编辑my.cnf文件并将此设置放在mysqld部分中:
[mysqld]
default_authentication_plugin= mysql_native_password
然后运行以下命令:
FLUSH PRIVILEGES;
上述命令将实现默认认证机制的更改。
我尝试了很多方法,但只有这个对我有用
检查你的**
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
- user - > root
- 密码 - > root
希望它有所帮助
这里没有任何答案对我有用。我必须做的是:
- 重新运行安装程序。
- 选择产品'MySQL Server'旁边的快速操作'重新配置'
- 浏览选项,直到您到达身份验证方法并选择“使用传统身份验证方法”
之后它工作正常。
面对同样的问题,我无法使用mysql版本8运行wordpress docker容器,因为它的默认认证机制是caching_sha2_password而不是mysql_native_password。
为了解决这个问题,我们必须将默认的身份验证机制重置为mysql_native_password。
在你的mysql安装中找到my.cnf文件,通常在Linux机器上,它位于以下位置 - / etc / mysql
编辑my.cnf文件并在标题[mysqld]下添加以下行
default_authentication_plugin = mysql_native_password
保存文件,然后使用root用户登录mysql命令行
运行命令FLUSH PRIVILEGES;
我正在使用Laravel Lumen构建一个小应用程序。 对我来说,这是因为我没有在我的.env文件中定义DB_USERNAME。
DB_USERNAME=root
设置这解决了我的问题。
在my.cnf文件中查看以下2个步骤。
- 检查这个值 - old_passwords = 0; 它应该是0。
- 检查这个 - [mysqld] default_authentication_plugin = mysql_native_password要检查的另一个值是确保 [mysqld]部分应该是这样的。
preferences -> mysql -> initialize database -> use legacy password encryption(instead of strong) -> entered same password
作为我的config.inc.php文件,重新启动了apache服务器,它工作正常。我仍然怀疑它,所以我停止了apache和mysql服务器并再次启动它们,现在它正在工作。
以上是关于PHP与MySQL 8.0+错误:服务器请求客户端未知的身份验证方法[重复]的主要内容,如果未能解决你的问题,请参考以下文章
MySQL 8.0 请求的客户端未知的身份验证方法 (caching_sha2_password)
MYSQL 8.0 - 客户端不支持服务器请求的身份验证协议
Mysql授权允许远程访问解决Navicat for MySQL连接mysql提示客户端不支持服务器请求的身份验证协议;考虑升级MySQL客户端