PHP 连接数据库提示 The server requested authentication method unknown to the client

平凡
2018-06-27 09:45:29
310 阅读

今天将本地 MySQL5.7 升级到 MySQL8,然后 PHP 连接数据库时提示 The server requested authentication method unknown to the client 这个错误,看样子应该是加密方式变了的缘故,因为从 MySQL5.7MySQL8 启用了新的加密方法。

解决办法也有,先让数据库启用兼容的加密方式

sudo vim /etc/my.cnf,在最下面新增如下代码:

[mysqld]
default_authentication_plugin=mysql_native_password

可通过 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 服务,然后使用你刚创建的用户和密码就可以了,其它的,我们等待 PHPMySQL8 的版本升级来解决这个问题吧。

1
3 评论
  • comment-avatar

    ***

    • 回复
  • comment-avatar

    还好吧宝贝

    • 回复
    comment-avatar

    👻👻👻

    • 回复
  • comment-avatar

    啦啊啦啦

    • 回复