当我们把数据库升级到MySQL8,并且使用phpMyAdmin来管理数据库时会发现一个问题,phpMyAdmin无法登录了,提示错误信息如下:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client
我们会在phpMyAdmin的登录页面看到如下图所示的错误提示:文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
导致这个错误的原因不是因为phpMyAdmin的代码有问题,不少人在遇到问题的时候首先会想到代码有问题,其实很多时候并不是代码本身的问题,一款成熟的系统基本上不会存在什么明显的代码方面的问题。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
那究竟是什么导致phpMyAdmin无法登录的呢?文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
原因是MySQL8修改了默认的身份验证方式,由原来默认的“mysql_native_password”改成了“caching_sha2_password”,同时PHP还没有应对mysql8的修改,所以就导致了phpMyAdmin无法登录的情况。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
解决方法也很简单,就是修改MySQL8的验证方式回原来的就可以了。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
具体操作如下:文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
1、首先登录MySQL:>mysql -u root -p password文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
这里的密码使用您实际的密码,上面的“password”只是做个演示。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
2、执行以下mysql命令:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
同样的“password”也要改成您实际使用的密码。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html
完成以上步骤后,您再次登录phpMyAdmin就没有问题了。文章源自爱尚资源教程网-https://www.23jcw.net/2330.html 文章源自爱尚资源教程网-https://www.23jcw.net/2330.html