PHP 7+ MySQL 8连接失败问题 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

mysql8.0之后默认使用caching_sha2_password作为默认的身份验证插件,而不再是mysql_native_password,但是客户端暂时不支持这个插件导致的。

解决方案:
第一步
macos下默认没有配置文件,先在/etc下创建my.cnf,具体参数百度搜索。
在my.cnf下 添加一行
[mysqld]
default_authentication_plugin= mysql_native_password
注意!不要添加[mysqld]skip-grant-tables,百度上很多方案都有问题的。

mysql添加配置文件my.cnf
PHP 7+ MySQL 8连接失败问题 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

手动关闭mysql服务,或者命令关闭mysql服务
第二步  

1、进入终端输入:cd /usr/local/mysql/bin

2、车后 登录管理员权限 sudo su (输入你电脑的密码)

3、回车后输入以下命令来禁止mysql验证功能 ./mysqld_safe --skip-grant-tables(注意是mysqld)

4、回车后mysql会自动重启(偏好设置中mysql的状态会变成running)

第三步

1、输入命令 ./mysql

2、回车后,输入命令 FLUSH PRIVILEGES;
3、回车后,输入命令 ALTER user ‘root‘@‘localhost‘ IDENTIFIED BY ‘123456‘ (123456,这是新密码随意写一个记住的)

第四步

重启mysql

PHP 7+ MySQL 8连接失败问题 SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

上一篇:向数据库插入数据为null——忘记加@RequestBody


下一篇:Mysql-DBA