这是 MySQL 8.0 默认认证插件改为 caching_sha2_password 导致 phpMyAdmin 连接失败;临时方案是执行 ALTER USER ... IDENTIFIED WITH mysql_native_password 并 FLUSH PRIVILEGES;长期方案需升级 phpMyAdmin 至 5.1.0+ 且确保 PHP 7.4+ 或正确编译的 mysqlnd 支持该插件。
phpMyAdmin 报错 mysqli_real_connect(): The server requested authentication method unknown to the client
这是 mysql 8.0 默认认证插件变更导致的典型连接失败。mysql 8.0+ 将默认身份验证插件从 mysql_native_password 改为 caching_sha2_password,而旧版 phpmyadmin(尤其是 4.x 或未更新的 5.x)使用的 mysqli 扩展不支持该插件。
- 不是 phpMyAdmin 配置错了,也不是密码输错——是底层驱动根本不认识这个认证方式
- PHP 版本也关键:PHP 7.4+ 的 mysqli 才原生支持
caching_sha2_password;PHP 7.2/7.3 需要编译时启用--with-mysqlnd且依赖较新 mysqlnd - 检查方法:登录 MySQL 后执行
SELECT user, host, plugin FROM mysql.user WHERE user = 'your_pma_user';,如果看到caching_sha2_password就确认是这个问题
临时方案:把用户认证插件切回 mysql_native_password
最快能用的方式,适合开发环境或对安全性要求不高的场景。注意这不是降级,只是改用兼容性更好的认证方式。
- 先确保你有 MySQL root 权限,然后连进命令行:
mysql -u root -p - 执行:
ALTER USER 'pma_user'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password'; - 别漏掉
FLUSH PRIVILEGES;,否则不生效 - 如果用户是从远程访问(比如 phpMyAdmin 装在另一台机器),要把
'localhost'换成对应 host,如'%'或具体 IP - 该操作不影响已有应用,只影响新连接——但所有用这个用户的客户端都会走老协议
长期方案:升级 phpMyAdmin 并确认 PHP 支持 caching_sha2_password
新版 phpMyAdmin(5.1.0+)已适配,但前提是底层 PHP 的 mysqlnd 能识别它。不能只看 phpMyAdmin 版本号,得看运行时能力。
- 查 PHP 是否支持:新建一个
info.php,写<?php phpinfo(); ?>,搜索mysqlnd和sha256_password或caching_sha2_password - phpMyAdmin 最低要求:5.1.0(2021 年发布),5.0.x 不行;下载地址认准官网
https://www.phpmyadmin.net/downloads/,别用系统包管理器装的老旧版本 - 配置文件
config.inc.php中不要硬写$cfg['Servers'][$i]['auth_type'] = 'cookie';这类老写法,新版默认即可 - 如果用了 Nginx + PHP-FPM,改完后记得重启
php-fpm,不是只 reload nginx
连接时提示 Access denied for user 却密码正确?检查 host 匹配和 plugin 是否同步
认证插件改了,但用户权限表里的 host 字段没对上,或者改插件后忘了刷新权限,就会卡在这一步。
- MySQL 用户是
(user, host)成对存在的,'pma'@'localhost'和'pma'@'127.0.0.1'是两个不同用户,插件可能不一样 - phpMyAdmin 默认用
localhost连接,但某些 PHP 配置下会走 TCP(等价于127.0.0.1),这时得确保两个 host 对应的用户都设对了插件 - 执行
SELECT user, host, plugin FROM mysql.user;看全量,重点核对 phpMyAdmin 实际连接时用的 host 是哪个 - 如果用 Docker 或云数据库,
host很可能是容器名、内网 IP 或%,改插件时必须精确匹配
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











