导读:本期聚焦于小伙伴创作的《phpMyAdmin提示Access denied for user root@localhost using password YES怎么解决》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《phpMyAdmin提示Access denied for user root@localhost using password YES怎么解决》有用,将其分享出去将是对创作者最好的鼓励。

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

phpMyAdmin提示Access denied for user root@localhost using password YES怎么解决

常见报错原因

  • 输入的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密码:

  1. 先停止MySQL服务,Linux执行systemctl stop mysql,Windows在服务管理器停止MySQL
  2. 跳过权限验证启动MySQL,Linux执行mysqld_safe --skip-grant-tables &,Windows在命令行进入MySQL安装目录的bin文件夹执行mysqld --skip-grant-tables
  3. 新开一个命令行窗口,直接执行mysql -u root无密码登录
  4. 执行以下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

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。