必须将$cfg['blowfish_secret']设为恰好32字符的随机字符串,并确保修改的是真实生效的config.inc.php文件(非config.default.php等),且auth_type已设为'cookie',否则仍会提示“需要短语密码”。

为什么改了 $cfg['blowfish_secret'] 还是报这个提示
不是没改,而是改错了位置或长度不对。XAMPP 的 phpMyAdmin 默认只认 config.inc.php 文件里的设置,而很多人误改了 config.default.php 或 config.sample.inc.php——这两个文件不会被加载,改了等于白改。
常见错误现象包括:
- 页面底部持续显示“配置文件现在需要一个短语密码”
- 登录后立刻跳回登录页,无错误提示
- 浏览器 DevTools → Application → Cookies 里看不到
phpMyAdmin_*加密 cookie
必须确认你编辑的是真实生效的配置文件:/opt/lampp/phpmyadmin/config.inc.php(Linux/macOS)或 C:\xampp\phpMyAdmin\config.inc.php(Windows)。如果该文件不存在,就复制 config.sample.inc.php 并重命名为 config.inc.php。
$cfg['blowfish_secret'] 必须严格满足 32 字符
新版本 phpMyAdmin(4.9+)强制要求 $cfg['blowfish_secret'] 是**恰好 32 字符**的随机字符串。填 '123'、'xampp' 或空字符串都会触发提示,且不报具体错误。
安全生成方式(终端执行):
openssl rand -base64 32 | tr -d '\n'; echo
复制输出结果(不含换行),粘贴进配置文件:
$cfg['blowfish_secret'] = 'KNGAP7pQhZRUFjVd4UEyqyslGNHow4HI';
注意检查:
- 单引号内**不能有空格、制表符、换行符**
- 末尾必须有分号
; - 该行不能被注释(前面不能有
//或/*) - 不要用中文引号、全角符号
auth_type 设为 cookie 后,$cfg['blowfish_secret'] 才生效
如果 $cfg['Servers'][$i]['auth_type'] 是 'config'(即自动用内置账号密码登录),$cfg['blowfish_secret'] 实际上不会被使用——这也是为什么有人改了密钥却没效果。
要让密钥起作用,必须启用 cookie 认证模式:
$cfg['Servers'][$i]['auth_type'] = 'cookie';
这个设置通常在 config.inc.php 文件靠后位置,搜索 auth_type 即可找到。改完后务必重启 Apache(sudo /opt/lampp/lampp restart 或点击 XAMPP 控制面板 Restart Apache)。
改完仍不生效?检查三个隐藏干扰点
多数人卡在这几步,和密钥本身无关:
-
config.inc.php文件权限不对:Linux/macOS 下需确保 Apache 进程能读取它,比如chmod 644 /opt/lampp/phpmyadmin/config.inc.php - 浏览器缓存了旧 cookie:DevTools → Application → Cookies → 删除所有
phpMyAdmin_*条目,或直接用隐身窗口测试 - PHP 版本切换或 XAMPP 升级后,
config.inc.php被覆盖重置——建议把生成好的 32 字符密钥存进密码管理器,每次升级后第一件事就是重填
最易忽略的是:XAMPP 自带的 phpMyAdmin 在更新时会静默替换整个目录,config.inc.php 若不在 git 或备份中,一升级就丢。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











