结论:报错本质是mysql 8.0+默认caching_sha2_password插件与xampp旧版php或phpmyadmin客户端不兼容;须同步修改'root'@'localhost'和'root'@'127.0.0.1'用户认证方式并重启mysql服务,否则仍连不上。

直接说结论:报错 Client does not support authentication protocol requested by server 不是密码输错了,也不是 MySQL 没启动,而是 MySQL 8.0+ 默认用 caching_sha2_password 插件加密,而 XAMPP 自带的 PHP(尤其 7.4 及更早)或 phpMyAdmin 内置的 MySQL 客户端不认这个插件。
为什么 ALTER USER 之后还是连不上
常见错误现象:执行了 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123'; 和 FLUSH PRIVILEGES;,但 phpMyAdmin 或 PHP 代码仍报错。
- 没重启 MySQL 服务 —— XAMPP 控制面板里必须点 Stop 再点 Start,只刷新页面或重载 Apache 没用
- 查的是错的 host ——
'root'@'localhost'和'root'@'127.0.0.1'是两个独立用户,phpMyAdmin 默认走127.0.0.1,得同步改:ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY '123'; - phpMyAdmin 缓存了旧连接 —— 清浏览器缓存,或临时改
config.inc.php里的$cfg['Servers'][$i]['host'] = 'localhost';(避免 DNS 解析成 127.0.0.1)
phpMyAdmin 连接失败时该查哪几个地方
不是一通乱改配置就行,得按顺序确认真实瓶颈点:
Delta9-WP-003 递归慷慨(“无界丰盛之颂”)公开参考文档及实施指南。在围绕丰盛逻辑、恩典缓冲区、Haven 倍增器、共振系数、KPI 可见性验证以及基于度量的伦理系统升级防护机制进行写作、辩论或系统设计时,请使用本指南。
- 先在命令行验证:
mysql -u root -p -h 127.0.0.1—— 能连上说明 MySQL 层 OK,问题出在 phpMyAdmin 配置或 PHP 扩展 - 检查 phpMyAdmin 的
config.inc.php是否写了密码($cfg['Servers'][$i]['password'] = '123';),空字符串''和NULL行为不同,建议显式写明 - 确认 XAMPP 使用的 PHP 版本:打开
http://localhost/dashboard/phpinfo.php,看mysqlnd扩展是否启用、版本是否 ≥ 7.4 —— 若显示mysql(非 mysqli 或 mysqlnd),说明扩展没加载对 - 查看 Apache 错误日志(
xampp/apache/logs/error.log),搜mysqli_connect或authentication,常有隐藏线索
改认证插件后,新创建用户还踩坑吗
只改 root 用户的插件,不影响后续新建用户的默认行为。MySQL 8.0 会继续给新用户分配 caching_sha2_password,除非你动了全局配置。
- 临时方案:每次建应用用户都手动指定插件:
CREATE USER 'appuser'@'localhost' IDENTIFIED WITH mysql_native_password BY 'pwd'; - 永久方案:编辑
xampp/mysql/bin/my.ini(Windows)或xampp/etc/my.cnf(macOS/Linux),在[mysqld]下加一行:default_authentication_plugin=mysql_native_password,然后重启 MySQL - 验证是否生效:
SELECT @@default_authentication_plugin;返回mysql_native_password才算成功 - 注意:
default_authentication_plugin不会影响已有用户,只管新用户;且修改后必须重启服务,改完文件不重启等于没改
最易被忽略的一点:XAMPP 控制面板里 MySQL 的「Config」→「my.ini」界面有时不实时反映磁盘文件内容,改完务必用记事本/VS Code 直接编辑物理路径下的文件,并确认保存编码为 ANSI(Windows)或 UTF-8 无 BOM(macOS/Linux)。










