phpMyAdmin提示Access denied for user 'root'@'localhost' (using password: YES)是MySQL访问验证失败的典型报错,说明客户端使用root用户和提供的密码尝试连接本地MySQL服务时被拒绝,多数情况下是配置或权限问题导致。

常见报错原因
- 输入的root用户密码错误,或者密码中包含特殊字符未正确转义
- phpMyAdmin配置文件中的数据库连接参数和实际MySQL配置不匹配
- root用户的localhost访问权限被限制,或者密码验证插件不兼容
- MySQL服务未正常运行,或者端口被占用无法正常响应连接请求
分步解决方法
第一步:检查MySQL服务状态
先确认MySQL服务是否正常运行,不同系统操作如下:
- Linux系统执行命令:
systemctl status mysql,如果未运行则执行systemctl start mysql启动服务 - Windows系统打开服务管理器,找到MySQL服务查看运行状态,手动启动未运行的服务
第二步:验证root密码正确性
先通过命令行直接连接MySQL验证密码是否正确,避免phpMyAdmin配置干扰:
# 尝试用root用户连接本地MySQL mysql -u root -p # 输入密码后如果提示Access denied,说明密码确实错误,需要重置密码
第三步:检查phpMyAdmin配置文件
phpMyAdmin的配置文件通常名为config.inc.php,找到该文件检查以下参数是否正确:
<?php // 检查主机配置,本地一般填localhost或者127.0.0.1 $cfg['Servers'][$i]['host'] = 'localhost'; // 检查用户配置,确认是root $cfg['Servers'][$i]['user'] = 'root'; // 检查密码配置,如果留空会提示输入密码,填了密码要确保和实际一致 $cfg['Servers'][$i]['password'] = '你的root密码'; // 确认认证方式,默认config即可,不要用其他不兼容的方式 $cfg['Servers'][$i]['auth_type'] = 'config'; ?>
如果修改了配置文件,需要重启phpMyAdmin对应的Web服务(如Apache、Nginx)让配置生效。
第四步:重置root用户密码
如果确认密码错误,可以通过以下步骤重置root密码:
- 先停止MySQL服务,Linux执行
systemctl stop mysql,Windows在服务管理器停止MySQL - 跳过权限验证启动MySQL,Linux执行
mysqld_safe --skip-grant-tables &,Windows在命令行进入MySQL安装目录的bin文件夹执行mysqld --skip-grant-tables - 新开一个命令行窗口,直接执行
mysql -u root无密码登录 - 执行以下SQL语句重置密码,注意MySQL 5.7及以上版本密码字段是
authentication_string:
-- 切换到mysql系统数据库
USE mysql;
-- 重置root用户密码,替换为你要设置的新密码
UPDATE user SET authentication_string=PASSWORD('新密码') WHERE User='root' AND Host='localhost';
-- 刷新权限
FLUSH PRIVILEGES;
-- 退出MySQL
EXIT;之后停止跳过权限的MySQL进程,正常启动MySQL服务,再用新密码测试连接即可。
第五步:检查root用户权限
如果密码正确还是报错,可能是root用户的localhost权限有问题,登录MySQL后执行以下SQL查看权限:
-- 查看root用户的host配置 SELECT User, Host FROM mysql.user WHERE User='root';
如果没有root@localhost的记录,或者Host是%但本地连接被限制,可以执行以下语句添加权限:
-- 授予root用户所有权限,允许localhost访问 GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '你的root密码' WITH GRANT OPTION; FLUSH PRIVILEGES;
注意事项
- 修改配置文件时注意不要写错参数名,尤其是密码不要有多余的空格
- 重置密码后如果还是无法登录,检查MySQL的密码验证插件,老版本可能用
mysql_native_password,可以在修改密码时指定插件:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'; - 生产环境不建议直接用root用户通过phpMyAdmin访问,可以创建专用管理用户降低风险
phpMyAdminMySQLroot用户访问拒绝密码验证修改时间:2026-06-07 00:09:19