一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

phpMyAdmin如何解决caching_sha2_password登录失败

时间:2026-08-10 17:24:49 编辑:袖梨 来源:一聚教程网

MySQL 8.0+ 默认使用 caching_sha2_password 插件导致 phpMyAdmin(≤5.0.2)无法登录,需执行 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password'; 并 FLUSH PRIVILEGES;,同时检查并同步修改 'root'@'127.0.0.1' 及 phpMyAdmin 的 auth_type 配置。

直接改 root 用户的认证插件,不是调配置、不是换密码、也不是清缓存——MySQL 拒你,是因为它用 caching_sha2_password 握手,而 phpMyAdmin(尤其 ≤ 5.0.2)根本听不懂这个“方言”。

确认是不是 caching_sha2_password 搞的鬼

别猜,进 MySQL 命令行查准:

SELECT User, Host, plugin FROM mysql.user WHERE User = 'root';

重点看 plugin 列。如果显示 caching_sha2_password,且你用的是本地 localhost 连接(phpMyAdmin 默认走 Unix socket),那基本就是它了。注意:'root'@'localhost''root'@'127.0.0.1' 是两个独立账号,必须分别查。

  1. phpMyAdmin 报 Access denied for user 'root'@'localhost',99% 是这个插件不兼容,不是密码错
  2. 错误不会提示插件名,但现象一致:输对密码也进不去,mysql -u root -p 能连,phpMyAdmin 就不行
  3. 如果你用的是 XAMPP、phpEnv 或 Docker 镜像,默认就可能带 MySQL 8.0+,插件已默认切换

ALTER USER 必须带密码重设,否则锁死账户

执行这条语句前,请确保你记得当前 root 密码(或能用其他方式登录):

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_new_password';

关键点:

  1. 不能只写 IDENTIFIED WITH mysql_native_password —— 缺少 BY 会清空密码,root 直接不可用
  2. 改完立刻跟一句 FLUSH PRIVILEGES;,否则修改不生效(很多教程漏掉这句)
  3. 如果报 ERROR 1396,说明该用户不存在,得先 CREATE USER 'root'@'localhost' IDENTIFIED BY 'xxx'; 再改

检查 phpMyAdmin 的 auth_type 是否匹配

改完服务端,还得看 phpMyAdmin 怎么连:

  1. 运行 grep "auth_type" /path/to/phpmyadmin/config.inc.php 查当前模式
  2. 若为 'config':它直接读 $cfg['Servers'][$i]['password'],必须确保 MySQL 允许该用户从 localhost 免密或指定密码登录
  3. 若为 'cookie''http'(XAMPP 默认):你界面上输什么,它就传什么给 MySQL —— 此时改 config.inc.php 里的密码字段完全无效
  4. Windows 下常见路径是 D:phpEnvphpmyadminconfig.inc.php,别在错误配置文件里白忙活

最容易被忽略的,是改了 'root'@'localhost' 却忘了 'root'@'127.0.0.1' —— Navicat、某些 PHP CLI 脚本或远程连接会走后者,而 phpMyAdmin 在部分部署环境下也可能 fallback 到 TCP 连接。真要彻底,两个 host 都得查、都得改。

热门栏目