Mysql8.0的一个坑

环境:Mysql8.0 、PHP 7.3 

报错如下:

SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client

原因如下:

mysql8.0使用了新的密码验证插件,caching_sha2_password,而PHP7.3上并不支持,所以要么我们换个支持的PHP版本,要么我们使用低版本的mysql

解决如下:

在此我们使用一个不更换php、mysql版本的方法支持连接。

1.登录msyql后执行

CREATE USER 'native'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

2.修改已有账户的验证插件

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'NewPassword';

3.开启mysql配置中的mysql_native_password

cd /etc/my.cnf

#开启
default-authentication-plugin=mysql_native_password

如此当前用户的密码验证插件已修改,此后新增的用户也会使用心得密码验证规则。

你可能感兴趣的:(PHP,Linux,Mysql)