phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器

phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器

一、报错场景:

phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第1张图片
#2054无法登陆Mysql服务器.png

二、报错原因:

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

三、解决方式:

序号 解决思路 具体操作
1 PHP 升级PHP版本(具体我也不知道哪个版本)
2 mysql 修改mysql的my.cnf(linux下)或者my.ini(windows下),修改验证方式为mysql_native_password

下面,我们使用第二种方式来解决(以windows下为例):
1.修改my.ini文件
  • 找到文件位置


    phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第2张图片
    my.ini文件位置.png
  • 添加下面两句
#更改为原来的验证方式
default_authentication_plugin= mysql_native_password
phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第3张图片
修改my.ini文件内容.png
2.重启mysql服务
  • 这里提供一种windows下我常用的方式,打开任务管理器,直接在服务里搜索mysql服务,右键停止后再启动。


    phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第4张图片
    重启mysql服务.png
3.重新尝试
  • 用PHPMyAdmin登录管理mysql,如果还是不行,可能是因为密码已经是sha2方式保存的,所以php原来的> 验证方式还是不能通过,这里我们再修改一下密码。
    在cmd登录mysql后,相关命令:
mysql -uroot -p 
use mysql;
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Root@123';  
FLUSH PRIVILEGES;  
phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第5张图片
cmd操作mysql.png

  • 这里需要注意,我刚开始改密码,用的123456,结果一直报错(如下图)。后来才知道mysql8.0安全密码策略提高了,要大小写加数字特殊符号。


    改密码报错.png

  • 可以查看一下当前的密码验证方式
    select User,plugin from user where User = 'root';
    phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第6张图片
    查看密码验证方式.png


phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器_第7张图片
image

你可能感兴趣的:(phpMyAdmin连接MySQL8.0报错为:#2054 无法登录 MySQL 服务器)