phpmyadmin 5.0 默认禁止空密码登录,必须同时设置 $cfg['servers'][1]['auth_type'] = 'config'、$cfg'servers'['user'] = 'root'、$cfg['servers'][1]['password'] = '' 和 $cfg'servers'['allownopassword'] = true,且仅加载根目录 config.inc.php 文件。

phpMyAdmin 5.0 默认禁止空密码登录,必须显式启用三个配置项并清空密码字段,否则即使设了 AllowNoPassword = true 仍会失败。
确认 config.inc.php 是否存在且被加载
phpMyAdmin 5.0 不再读取 libraries/config.default.php 作为主配置;它只加载根目录下的 config.inc.php。如果你直接修改 config.default.php,改动完全无效。
- 检查 phpMyAdmin 根目录下是否有
config.inc.php;若无,复制config.sample.inc.php并重命名为config.inc.php - 确保该文件在 Web 服务器可读(如 nginx/Apache 对其有读取权限)
- 若使用一键环境(如 XAMPP、phpStudy),
config.inc.php通常已存在,但可能被精简过,需手动补全配置
设置本地 root 用户无密码登录的三要素
仅改 $cfg['Servers'][$i]['AllowNoPassword'] = true 是不够的——必须同时满足以下三点:
-
$cfg['Servers'][$i]['auth_type'] = 'config':启用免交互认证(不能是cookie或http) -
$cfg['Servers'][$i]['user'] = 'root'且$cfg['Servers'][$i]['password'] = '':明确定义用户名和空密码 -
$cfg['Servers'][$i]['AllowNoPassword'] = true:显式允许空密码连接
注意:$i 是服务器索引(通常为 1),完整写法应为 $cfg['Servers'][1]['AllowNoPassword'] = true;若只有一台服务器,$i 常写作 1 或通过循环获取,但硬编码更稳妥。
常见失败原因与绕过方式
即使配置正确,仍可能遇到“无法登录”或跳转回登录页,典型原因如下:
- 浏览器缓存了旧的 cookie 登录态:关闭所有 phpMyAdmin 标签页,用隐身窗口重试
- nginx/Apache 配置中未正确传递
SCRIPT_FILENAME,导致 PHP 无法加载config.inc.php:检查错误日志里是否出现Failed to open stream: No such file or directory -
$cfg['blowfish_secret']为空且auth_type = 'cookie':此时即使设了空密码也会报错;只要用config认证方式,该字段可留空(但建议填 32 字符随机串以防未来切换) - MySQL 本身拒绝空密码连接:确认 MySQL 8.0+ 中
root@localhost的认证插件不是caching_sha2_password且密码为空;必要时执行:ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '';
最易被忽略的一点:phpMyAdmin 5.0+ 的 config.inc.php 必须以 PHP 语法严格闭合,末尾不能有多余输出(包括空行、BOM、echo),否则整个配置失效且无提示。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











