昨天晚上,熊二哥哥用phpmyadmin链接他的mysql8.0的时候,提示#2054的错误,说密码明明是对的,就是无法登陆,其实报错#2054并非密码错误,如果密码错误,就直接提示密码错误的提示,而不会是#2054,那具体啥错误呢?先来看看错误图;

887996cf6ca8867236ad64c8977a964e.png

二、报错原因:

由于mysql8.0默认使用了新的密码验证插件caching_sha2_password,而之前的PHP版本中所带的mysqlnd不能支持新的验证方式。

三、解决方式:

解决思路

具体操作

PHP

升级PHP版本(一定是PHP7.X以上具体也跟你的phpmyadmin有关系,保持在4.0-4.6,可能也有些时候不好使)

mysql

修改mysql的my.cnf(linux下)或者my.ini(windows下),修改验证方式为mysql_native_password

我们使用第二种方式来解决(以windows下为例):

1.修改my.ini文件  找到mysql的路径;

2e36821c5dc6bfeb03e209873abb4943.png

用记事本打开my.ini文件,添加以下语句即可;

#更改为原来的验证方式

default_authentication_plugin= mysql_native_password

8e8a6e6c790bae4e831a68e208c86627.png

2.重启mysql服务,控制面板\所有控制面板项\管理工具\服务下找到mysql进程,mysql8.0默认服务名称为 mysql80,然后直接点右键重启即可完成;

e9082be01c12def9cc44e264e8042d02.png

下面教程以linux为例:

1、 首先修改mysql的配置文件my.cnf;

设置任何用户登录都可以获得全部的权限,在[mysqld]的段中加上一句:skip-grant-tables 然后重启mysql

2、 再次执行修改密码的sql语句:

UPDATE user SET Password = password ('new-password') WHERE User = 'root';flush privileges;

3、 接下来重启mysql即可解决问题;

所写所说,是心之所感,思之所悟,行之所得;文当无敷衍,落笔求简洁。 以所舍,求所获;有所依,方所成!(有事儿请详询博主:博主电话以及微信18810292089)

Logo

更多推荐