发生这种错误,是由于MySQL 8默认使用了新的密码验证插件:caching_sha2_password,而之前的PHP版本中所带的mysqlnd无法支持这种验证
有几种方法:1.升级PHP版本,PHP7.xx有支持MySQL8.0的插件认证
2.修改配置文件my.cnf 使数据库启用兼容的加密方式
我们这里讲第二种方法
安装MySQL8.0的过程这里就不赘述了,可以参考我的另一篇博客
2.1
whereis mysql
//查看mysql所存在的目录
cd /etc/mysql
//切换到/etc/mysql下
ls
我们对my.cnf进行修改
vim my.cnf
//如果权限不够的话可以切换到root用户进行操作
在最底下添加下面的代码
[mysqld]
default_authentication_plugin= mysql_native_password
//更改为原来的验证方式
然后保存退出,vim的命令可自行百度
重启mysql服务
sudo service mysql restart
除了上述这种方法,还可以用另一种
2.2
用命令行 mysql -u root -p 登录mysql
输入:
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';
FLUSH PRIVILEGES;
再用phpmyadmin登录管理mysql,报错消失了。
大功告成