需升级phpMyAdmin至4.6.0+并启用mysqli扩展,删除config.inc.php中硬编码的mysql扩展指定,确保PHP环境已安装mysqli、mbstring等必要扩展,重启Web服务。
phpMyAdmin 报错 mysqli extension is missing 怎么办
这是 php 7.0+ 环境下最常见的兼容性问题:旧版 phpmyadmin 依赖已废弃的 mysql 扩展,而新版 php 默认只启用 mysqli 或 pdo_mysql。不是配置错了,是扩展名本身不匹配。
- 检查当前 PHP 是否启用了
mysqli:php -m | grep mysqli,没输出就说明没启用 - 别去装早已被移除的
mysql扩展——PHP 7.0 起它就不存在了,强行编译会失败 - 确认 phpMyAdmin 版本:2.x 或更老的版本不支持
mysqli,必须升级到 4.6.0+(推荐 5.2.x) - 如果用的是系统包管理器安装(如 apt/yum),注意 php-mysql 和 php-mysqli 可能是两个独立包,要装
php-mysqli,不是php-mysql
phpMyAdmin 配置文件里怎么写 mysqli 连接
phpMyAdmin 不需要改代码,只要确保 config.inc.php 中没硬编码指定 mysql 扩展——它默认优先用 mysqli,前提是 PHP 环境里有。
- 删掉或注释掉类似
$cfg['Servers'][$i]['extension'] = 'mysql';这行(如果存在) - 不要手动设成
'mysqli':phpMyAdmin 4.6+ 会自动探测可用扩展,强制指定反而可能绕过自动 fallback - 检查
$cfg['Servers'][$i]['host']和$cfg['Servers'][$i]['port']是否正确,mysqli对 socket 连接路径更敏感,本地连接建议显式写127.0.0.1而非localhost(避免走 Unix socket 导致权限/路径问题)
Apache/Nginx 下 PHP 模块加载失败的典型表现
即使 php -m 显示 mysqli,Web 服务仍报扩展缺失,大概率是 PHP-FPM 或模块没同步加载。
- 重启对应服务:
systemctl restart php-fpm(FPM 模式)或systemctl restart apache2(mod_php)或systemctl restart nginx+ 重启 PHP-FPM(Nginx+PHP-FPM 组合) - 确认 Web 使用的 PHP 版本和 CLI 是同一个:
phpinfo()页面里的Loaded Configuration File路径,和php --ini输出是否一致 - 某些 Docker 镜像(如
php:apache)默认不带mysqli,需在 Dockerfile 里加docker-php-ext-install mysqli
升级 phpMyAdmin 后登录页空白或 500 错误
这不是 mysqli 问题,而是新版对 PHP 版本、GD 扩展、JSON 支持等依赖变严格了。
- 检查错误日志:
tail -f /var/log/apache2/error.log或 PHP-FPM 的log_level = debug日志,常见报错如Call to undefined function mb_detect_encoding()—— 缺php-mbstring - 必要扩展至少包括:
mysqli、mbstring、json、gd(图形验证码)、zip(导入导出) - 如果从 4.0.x 升级到 5.x,
blowfish_secret必须设置且长度 ≥32 字符,否则登录页直接白屏
真正麻烦的不是换扩展,是不同环境里 PHP 模块加载路径、用户权限、socket 文件位置这些细节不一致——同一份配置,在 CLI 下跑得通,放到 Web 里就挂,得一个个比对 phpinfo() 输出。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











