MySQL改root密码后phpMyAdmin登不进,主因是服务端认证与客户端配置未同步:5.7+须用authentication_string字段、8.0+必须用ALTER USER并指定caching_sha2_password插件;同时需更新config.inc.php中$cfg['Servers'][$i]['password']等三处凭据,并确保auth_type和blowfish_secret配置正确。

直接改 root 密码后 phpMyAdmin 登不进去,不是密码设错了,而是你只改了一半 —— MySQL 服务端的认证凭据和 phpMyAdmin 客户端的连接配置必须同步更新,缺一不可。
用 SQL 命令在 phpMyAdmin 里改 root 密码(MySQL 5.7 及以下)
这是最常见也最容易出错的操作路径。进入 phpMyAdmin 后,先点左侧「mysql」数据库,再点顶部「SQL」标签页,粘贴执行:
UPDATE user SET authentication_string = PASSWORD('你的新密码') WHERE User = 'root' AND Host = 'localhost';<br>FLUSH PRIVILEGES;
注意几个关键点:
- 别用
password字段(5.7+ 已废弃),必须用authentication_string -
PASSWORD()函数在 MySQL 8.0.11+ 已被移除,若你用的是 8.0+,这条会报错FUNCTION PASSWORD does not exist - 必须加
FLUSH PRIVILEGES;,否则修改不生效 -
Host条件不能省,'root'@'localhost'和'root'@'%'是两条不同记录
MySQL 8.0+ 必须用 ALTER USER(否则死活连不上)
如果你的 MySQL 是 8.0 或更新版本(比如 phpEnv 自带的 8.0.33、XAMPP 8.x),UPDATE user + PASSWORD() 完全无效。必须用标准语法:
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';<br>FLUSH PRIVILEGES;
常见翻车点:
- 漏掉
@'localhost'—— 默认只改本地访问权限,远程连接仍失败 - 没执行
FLUSH PRIVILEGES;—— 修改存在内存里,重启前不落地 - 用单引号包住密码但里面含特殊字符(如
$、!)—— 命令行里要转义,phpMyAdmin SQL 界面里一般不用,但复制粘贴时容易被编辑器吞掉
改完密码后 phpMyAdmin 还登不上?检查 config.inc.php 的三个位置
很多用户卡在这一步:密码明明改成功了,phpMyAdmin 却报 #1045 - Access denied for user 'root'@'localhost'。这是因为 phpMyAdmin 本身有三处地方硬编码了登录凭据,必须全部对齐:
-
$cfg['Servers'][$i]['password'] = '';—— 在config.inc.php文件中(通常位于 phpMyAdmin 根目录),改成你的新密码 - 如果用了
auth_type = 'config'模式(即无登录页、直入后台),这个字段就是唯一凭据来源 - 有些旧版 WAMP/XAMPP 还会读
libraries/config.default.php,同样要搜$cfg['Servers'][$i]['password']并更新 - 确认
$cfg['Servers'][$i]['auth_type']不是'cookie'却没配blowfish_secret,否则会白屏或报密钥缺失
为什么改完密码反而进不去登录页?auth_type 配置被锁死了
现象是打开 http://localhost/phpmyadmin 直接跳错误页,连输入框都不见。大概率是 config.inc.php 里写了 $cfg['Servers'][$i]['auth_type'] = 'config';,而你又没填对密码 —— 它不会弹窗,只会静默拒绝。
临时救急方法:
- 把
auth_type改成'cookie'或'http',就能看到登录框,靠手动输密码进系统 - 改完后记得补上
$cfg['blowfish_secret'](任意长字符串),否则 cookie 模式无法启用 - 不要长期用
config模式明文存密码,尤其在公网可访问环境
最易忽略的其实是版本兼容性:MySQL 8.0 的密码插件默认是 caching_sha2_password,老版本 phpMyAdmin(如 4.6 以下)压根不支持,连握手都失败 —— 此时得在 MySQL 里显式切回 mysql_native_password 插件,而不是只改密码。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











