phpMyAdmin 只支持 MySQL 及兼容数据库,因其专为 MySQL 协议设计,依赖 mysqli/PDO_MySQL 扩展,界面、SQL 解析器、导出格式均围绕 MySQL 定制,不支持 Redis(RESP 协议)或 MongoDB(BSON 协议)。
phpmyadmin 无法连接 redis 或 mongodb,它只支持 mysql(及兼容协议的 mariadb、percona 等)。
为什么 phpMyAdmin 不支持 Redis / MongoDB
phpMyAdmin 是专为 MySQL 协议设计的 Web 管理工具,底层依赖 mysqli 或 PDO_MySQL 扩展,不包含 Redis 的 redis 扩展或 MongoDB 的 mongodb 扩展调用逻辑。它的界面、SQL 解析器、查询构建器、导出格式(如 .sql)全部围绕 MySQL 语法和数据模型定制。
常见错误现象包括:
- 在登录页填入 Redis 的
6379端口或 MongoDB 的27017端口,提示Connection refused或Access denied for user ''@'localhost' - 修改配置文件
config.inc.php尝试添加$cfg['Servers'][$i]['host'] = 'redis.example.com';,结果仍连向 MySQL 并报错 - 误以为“Web 界面 + 数据库名”就代表通用性,实际是协议隔离 —— MySQL 用文本协议 + SQL 命令,Redis 用 RESP,MongoDB 用 BSON over TCP
替代方案:用对的工具连对的数据库
不要改造 phpMyAdmin,而是换用原生支持目标数据库的 Web 工具:
-
Redis:用
phpRedisAdmin(轻量 PHP 工具)、RedisInsight(官方 GUI,支持云端 Redis)、或命令行redis-cli -h your-redis-host -p 6379 -
MongoDB:用
MongoDB Compass(桌面 GUI)、mongosh(官方 Shell)、或云厂商控制台(如 Atlas 的 Web Shell) - 如果必须 Web 化且需多数据库统一入口,可考虑
Adminer(但注意:它也仅支持 MySQL/PostgreSQL/SQLite/Oracle/MS SQL —— 依然不支持 Redis/MongoDB)
误操作后容易被忽略的配置残留
有人会尝试在 phpMyAdmin 的 config.inc.php 中硬改 host/port 或伪造认证参数,这不会生效,反而可能引发以下问题:
立即学习“PHP免费学习笔记(深入)”;
- 修改
$cfg['Servers'][$i]['auth_type'] = 'cookie';后仍填 Redis 地址,导致登录页反复跳转或空白(因 session 初始化失败) - 把
$cfg['Servers'][$i]['port'] = '6379';写死,下次想连本地 MySQL 时忘记改回'3306',连不上还查不出原因 - 上传自定义脚本到 phpMyAdmin 目录试图桥接 Redis(如用
exec('redis-cli ...')),存在严重安全风险(RCE 漏洞)且违反 phpMyAdmin 的运行沙箱原则
真正要连云端 Redis 或 MongoDB,得从协议层出发 —— 选对客户端,配对网络权限(如安全组放开 6379 或 27017),再用对应工具登录。别在 phpMyAdmin 上浪费时间调试“不支持的功能”,它连 SHOW DATABASES 都解析不了 KEYS *。



















