phpMyAdmin登录页输入的密码是MySQL用户密码,config.inc.php中password仅控制自动连接凭证;真正生效的是mysql.user表中root@localhost等账号的认证信息,改密后需同步更新配置并注意host、插件兼容性及服务权限。

phpMyAdmin 登录账号密码不是改 config.inc.php 就能生效的——它只控制连接 MySQL 的凭证,而登录页本身不校验这个;真正起作用的是 MySQL 的 root(或其他)用户权限记录。
phpMyAdmin 登录页输的密码,其实是 MySQL 用户密码
很多人以为改了 config.inc.php 里的 $cfg['Servers'][$i]['password'] 就等于改了 phpMyAdmin 登录密码,其实不是。那个配置只是让 phpMyAdmin 自动用指定密码去连 MySQL,跳过登录页。如果你仍看到登录框,说明 phpMyAdmin 正在走「交互式认证」,此时你输的密码会被直接发给 MySQL 去验证——校验对象是 mysql.user 表里的 root@localhost 或 root@% 这类账号。
- 改
config.inc.php只影响「自动登录」行为,不影响 MySQL 底层账号密码 - 登录页报错 “Access denied for user 'root'@'localhost'”,99% 是 MySQL 里该账号密码错了,或 host 不匹配
- MySQL 5.7+ 默认用
authentication_string字段存密码,PASSWORD()函数已废弃,别再用UPDATE user SET password=PASSWORD('xxx')
Windows 7 下重置 MySQL root 密码必须绕过权限表
Win7 上常见情况:你根本登不进 MySQL,连 mysql -u root -p 都被拒。这时得用 --skip-grant-tables 启动 MySQL,跳过权限检查,再进库改密码。注意顺序不能错:
- 先以管理员身份打开命令提示符,执行
net stop mysql(服务名可能是mysql57、mysqld,用sc queryex type= service state= all | findstr "mysql"查准) - 进 MySQL
bin目录,运行mysqld --skip-grant-tables --shared-memory(加--shared-memory防止 Win7 下因命名管道失败卡住) - 另开一个命令行,直接运行
mysql -u root(不加-p),进库后执行:FLUSH PRIVILEGES;ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码'; - 如果提示
ERROR 1396 (HY000),说明root@localhost不存在,试试SELECT User,Host FROM mysql.user;看实际账号,再换'root'@'%'
改完密码后 phpMyAdmin 还登不上?检查 host 匹配和插件
MySQL 8.0 默认用 caching_sha2_password 插件,而老版 phpMyAdmin(如 4.8.x)不支持,会卡在登录页无反应或报错 mysqli_real_connect(): The server requested authentication method unknown to the client。
立即学习“PHP免费学习笔记(深入)”;
- 临时解决:进 MySQL 执行
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '密码'; - 长期建议:升级 phpMyAdmin 到 5.0+,或确认你用的版本是否打了兼容补丁
- Win7 下还要留意:如果 Apache 是 SYSTEM 账户运行,但 MySQL 绑定在
127.0.0.1(而非localhost),可能触发 DNS 解析失败;可在my.ini加skip-name-resolve并确保连接时用127.0.0.1而非localhost
WAMP/XAMPP/AppServ 环境下最易忽略的权限点
不是所有环境都一样。比如 WAMP 默认禁用远程访问,XAMPP 默认只允 localhost,AppServ 8.6.0 安装时若没设强密码,MySQL 会拒绝初始化——这些都会让你改完密码也登不进 phpMyAdmin。
- WAMP:右键托盘 →
Apache → httpd.conf,搜Require local,改成Require all granted(Apache 2.4+);再查alias/phpmyadmin.conf里同位置配置 - XAMPP:打开
httpd-xampp.conf,确认<Directory "C:/xampp/phpMyAdmin">块内有Require all granted,且未被注释 - AppServ 8.6.0:安装时 MySQL root 密码必须含大小写字母+数字+符号,否则初始化失败,
mysql.user表压根没建好——此时连mysqld --skip-grant-tables都进不去
Win7 下改密码这事,表面是 SQL 操作,实则横跨 MySQL 启动参数、认证插件、Apache 访问控制、Windows 文件权限四层。漏掉任何一层,都会卡在“明明改了却登不上”。



















