phpMyAdmin首页快捷入口并非由单一配置项控制,而是依赖多服务器配置:需在config.inc.php中定义至少两个$cfg['Servers'][$i](i从1开始),每个配对设置host与verbose,并设auth_type='config',才能在导航栏顶部显示可切换的服务器入口。
首页快捷入口配置文件在哪
phpmyadmin 的首页快捷入口(即“常用数据库”或“最近访问”下方的自定义链接)由 config.inc.php 中的 $cfg['servers'][$i]['favorite'] 和相关设置控制,但真正添加静态快捷入口的地方是 config.inc.php 里的 $cfg['navigationtree']['databasenametemplate'] 和更直接的 $cfg['servers'][$i]['host'] 配置组合——其实不是。真正起作用的是 $cfg['quicklinklist'] 数组,它从 phpmyadmin 5.0 开始支持,且仅在启用 $cfg['showhint'] = true; 时部分生效?不,实际可用的是 $cfg['servers'][$i]['pmadb'] 关联的 pma__bookmark 表,但那是书签,不是首页入口。
正确路径是:编辑 config.inc.php,在 $cfg['Servers'][$i] 块外、全局作用域下添加 $cfg['QuickLinkList'] ——但该配置项并不存在于官方文档中。真实有效的方式是利用 $cfg['Servers'][$i]['verbose'] + 自定义导航链接注入,或更稳妥地:通过 config.inc.php 定义 $cfg['Servers'][$i]['host']、$cfg['Servers'][$i]['port']、$cfg['Servers'][$i]['user'] 并配合 $cfg['Servers'][$i]['auth_type'] = 'config',再启用 $cfg['AllowArbitraryServer'] = true;,但这会暴露风险。
真正轻量、安全、生效的定制方式,是修改 ./templates/home/index.twig(phpMyAdmin 5.2+)或旧版的 ./libraries/display_home.lib.php ——但直接改源码不可升级。所以唯一推荐做法:用 $cfg['Servers'][$i]['verbose'] 控制显示名,并靠多服务器配置生成多个入口。
-
$cfg['Servers'][$i]['host']和$cfg['Servers'][$i]['verbose']必须配对出现,否则不显示为快捷入口 - 每个
$i对应一个独立入口;$i从 1 开始($cfg['Servers'][1]),不能跳号 - 若只配一个服务器,默认不显示为“快捷入口”,必须至少两个以上
$cfg['Servers'][$i]才触发导航栏顶部的切换入口 -
$cfg['Servers'][$i]['auth_type'] = 'config'是前提,否则登录页会覆盖首页
怎么让某个数据库自动出现在首页快捷区
phpMyAdmin 不提供“把某个数据库钉在首页”的机制,所谓“快捷入口”本质是服务器连接入口,不是数据库。想快速访问 shop_db,得先连上对应服务器,再选库——但可以绕过选择步骤:用 URL 参数预设。
最实用的做法是,在首页模板里手动加 HTML 链接,指向带参数的 URL:
https://your-pma.example.com/?server=1&db=shop_db&token=xxx
但 token 动态生成,不可硬编码。替代方案是启用 $cfg['AllowArbitraryServer'] = true; 后,构造无 token 的链接:
https://your-pma.example.com/index.php?server=1&db=shop_db
前提是 config.inc.php 中已定义 $cfg['Servers'][1],且未启用双因子或 token 校验($cfg['CheckConfigurationPermissions'] = false; 可降低限制)。
- 链接必须含
server=N,N 对应$cfg['Servers'][N]的索引 -
db=xxx参数仅在登录后生效;若未登录,会被重定向到登录页,参数丢失 - 若用
auth_type = 'cookie',无法跳过登录,此时快捷入口只能导向服务器选择页,不能直达库 - 真正“直达数据库”的唯一稳定方式:前端加自定义按钮,用 JS 模拟点击 + 切换库操作,但违反 CSP 且易失效
为什么改了 config.inc.php 没反应
改完 config.inc.php 没出现新入口,大概率是因为缓存或配置加载顺序问题。phpMyAdmin 会缓存配置,尤其是启用 OPcache 或 APCu 时,config.inc.php 修改后 PHP 进程可能仍读旧字节码。
- 重启 Web 服务(
systemctl restart apache2或systemctl restart php-fpm)比刷新页面更可靠 - 确认修改的是正在使用的
config.inc.php:有些部署用/etc/phpmyadmin/config.inc.php,有些用/usr/share/phpmyadmin/config.inc.php,可通过首页底部“版本信息”旁的“显示 PHP 信息”链接查$_SERVER['SCRIPT_FILENAME'] -
$cfg['Servers'][1]['verbose'] = 'Production DB';写错位置(比如写在if块里但条件不满足)会导致整段被跳过 - 如果用了 Docker,宿主机改了文件但容器没挂载或没 reload,改等于白改
用 bookmark 表实现类快捷入口是否可行
可以,但不是首页快捷入口,而是“SQL 查询页”的书签入口。phpMyAdmin 把用户保存的 SQL 查询存进 pma__bookmark 表,通过 SELECT 语句展示在“SQL”标签页下方。它不会出现在首页导航区,也不能一键连库。
- 插入一条记录到
pma__bookmark:字段dbase填数据库名,query填 SQL,user填当前用户名 - 需提前建好 pmadb(用
create_tables.sql导入),并配置$cfg['Servers'][$i]['pmadb'] - 即使成功,点击书签仍需先选中对应数据库,无法跳过
- 书签功能依赖 session 用户名匹配,跨用户不共享,不适合管理员统一配置
首页快捷入口这件事,本质上受限于 phpMyAdmin 的架构设计:它是个数据库管理器,不是仪表盘。所谓“定制”,只是在服务器列表上做文章。真要钉死某个库,就得接受它只是个链接,且登录态、权限、token 都绕不开。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











