$cfg['blowfish_secret']必须严格设为32字节随机字符串,且仅在auth_type='cookie'时生效;需确保修改config.inc.php而非config.default.php,并清除浏览器cookie。

必须填满32字节,且只在 auth_type = 'cookie' 下生效,否则页面底部会持续报“配置文件现在需要一个短语密码”。
确认 config.inc.php 已存在并可编辑
新装 phpMyAdmin 后默认只有 config.sample.inc.php,它不会被加载。必须手动复制为正式配置文件:
cp config.sample.inc.php config.inc.php- 路径通常为:
/var/www/html/phpmyadmin/config.inc.php(Apache)或/usr/share/phpmyadmin/config.inc.php(Debian/Ubuntu 包安装) - 宝塔用户优先改
/www/server/phpmyadmin/config.inc.php,别动config.default.php
设置 $cfg['blowfish_secret'] 为32字节随机字符串
密钥太短(比如填 '123' 或 'abc123')会导致提示“密文太短”,甚至登录页无限重定向或 500 错误。
- 必须严格 32 字符,例如:
$cfg['blowfish_secret'] = '8a7b6c5d4e3f2a1b0c9d8e7f6a5b4c3d'; - 不要用简单序列(如
'aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa'),易被爆破 - 生成建议用命令:
openssl rand -base64 24 | tr -d '=+/' | cut -c1-32 - 填完保存,重启 Web 服务(
systemctl restart apache2或nginx)不是必须,但清浏览器 cookie 是必须的
检查 auth_type 是否为 cookie
双因素认证和 blowfish 密钥都只在 cookie 模式下起作用;设成 http 或 config 会直接忽略 $cfg['blowfish_secret'],还可能引发权限绕过风险。
- 确保配置中有:
$cfg['Servers'][$i]['auth_type'] = 'cookie'; - 不能是
'http'、'HTTP'或'config' - 若用了多服务器配置(
$i循环),每一段都要检查,漏掉一个就失效
常见错误现象与对应动作
填了密钥仍报错?大概率是以下某一项没对上:
- 提示“Access denied for user 'root'@'localhost' (using password: NO)” → 浏览器缓存了旧 session,强制清空所有 phpMyAdmin 相关 cookie 再试
- 页面底部红字“配置文件现在需要一个短语密码”持续存在 → 检查是否改错了文件(比如只改了
config.default.php而非config.inc.php) - 登录后跳转失败或白屏 →
$cfg['blowfish_secret']含不可见字符(如 Windows 换行符)、长度不足 32、或 PHP 扩展缺失(mcrypt已废弃,现代环境用openssl即可,无需额外扩展) - 启用 2FA 后扫码失败 → 不是密钥问题就是没清浏览器缓存,
TwoFactorAuth='application'必须配合auth_type = 'cookie'和有效blowfish_secret
最易被忽略的是:密钥长度必须硬性达标 32 字节,且修改后不清理浏览器 cookie 就等于没改。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











