PHP 连接数据库提示 The server requested authentication method unknown to the client
今天将本地 MySQL5.7
升级到 MySQL8
,然后 PHP
连接数据库时提示 The server requested authentication method unknown to the client
这个错误,看样子应该是加密方式变了的缘故,因为从 MySQL5.7
到 MySQL8
启用了新的加密方法。
解决办法也有,先让数据库启用兼容的加密方式
sudo vim /etc/my.cnf
,在最下面新增如下代码:
可通过
mysql --help|grep my.cnf
查找my.cnf
位置
但是目前仍然是无法验证的,因为现存的密码还是用的新的加密方式,我们需要改成mysql_native_password
加密方式或者建立一个新用户并且使用 mysql_native_password
加密
# 将新的加密方式修改成 mysql_native_password 加密方式
ALTER USER 'root'@'localhost' IDENTIFIED BY '密码' PASSWORD EXPIRE NEVER;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
FLUSH PRIVILEGES;
# 或者新建用户并且使用 mysql_native_password 加密
CREATE USER 'admin'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码';
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES ;
最后重启 MySQL 服务,然后使用你刚创建的用户和密码就可以了,其它的,我们等待 PHP
和 MySQL8
的版本升级来解决这个问题吧。
4
1
***
还好吧宝贝
👻👻👻
啦啊啦啦