$cfg['MaxRows'] = 50; 控制phpMyAdmin所有SELECT查询结果的默认分页大小,需手动编辑config.inc.php配置文件,设为0表示不限制但不推荐,修改后刷新页面即生效。
在 phpMyAdmin 配置文件中修改 $cfg['MaxRows']
phpmyadmin 不提供界面按钮直接设置「每页显示行数」的全局默认值,必须手动编辑配置文件。这个值由 $cfg['maxrows'] 控制,它影响所有 select 查询结果的分页大小(比如浏览表、执行 sql 后的结果页)。
常见错误是只改 config.inc.php 里的临时设置,却没确认是否被其他配置覆盖;或者改了但没重启 Web 服务(其实不需要重启,phpMyAdmin 是 PHP 脚本,改完配置后刷新页面即可生效)。
-
$cfg['MaxRows'] = 50;表示默认每页显示 50 行(可设为50、100、200等整数;设为0表示不限制,但不推荐——大数据量时极易卡死浏览器) - 配置文件路径通常是
/etc/phpmyadmin/config.inc.php(Debian/Ubuntu)或/usr/share/phpmyadmin/config.inc.php(CentOS/RHEL),也可能是你自定义的安装目录下的config.inc.php - 确保该行写在
<?php开始之后、且不在任何条件判断块内(例如不要放在if (isset(...)) { ... }里),否则可能不生效
用户级设置会覆盖 $cfg['MaxRows'] 吗?
会。如果用户已登录并保存过「首选项」,phpMyAdmin 会把每页行数记在数据库的 phpmyadmin.pma__userconfig 表中(字段为 config_data,键为 MaxRows)。此时即使改了全局 $cfg['MaxRows'],对已登录用户也不起作用。
解决方法有两个:
- 让所有用户重新进入「设置 → 右上角齿轮图标 → 重置所有设置」,清除个人偏好
- 直接清空
pma__userconfig表(慎用),或执行 SQL:DELETE FROM `phpmyadmin`.`pma__userconfig` WHERE `username` = 'your_user' AND `config_name` = 'MaxRows';
- 若希望强制统一,可在
config.inc.php中加一行:$cfg['IgnoreUserConfig'] = true;,这样跳过读取用户配置
为什么改了 $cfg['MaxRows'] 却没生效?
最常踩的坑是:修改的是错误的配置文件,或被缓存干扰。phpMyAdmin 实际加载的配置路径可能和你以为的不同。
立即学习“PHP免费学习笔记(深入)”;
验证当前生效的配置位置:
- 登录 phpMyAdmin → 点右上角「设置」→ 切到「常规设置」标签页 → 拉到底部看「配置文件路径」一栏,那里显示的就是真实加载的
config.inc.php路径 - 检查该文件里是否有重复定义
$cfg['MaxRows'](比如前面设了50,后面又设成30,后者会覆盖前者) - 某些 Docker 镜像或一键包(如 XAMPP、MAMP)会把配置生成在运行时目录,而非源码目录,改错地方就白忙活
顺便注意 $cfg['MaxDbList'] 和 $cfg['MaxTableList']
它们和 $cfg['MaxRows'] 名字相似,但控制完全不同的东西:$cfg['MaxDbList'] 是数据库列表每页最多显示几个库,$cfg['MaxTableList'] 是单个库内表列表每页最多显示几张表。别混淆——改错参数不会影响查询结果的分页行数。
这些参数都建议设为略大于你日常使用量的值(比如有 80 张表,就把 $cfg['MaxTableList'] 设成 100),避免频繁翻页,但也不要盲目设太大,否则页面渲染慢、内存占用高。
真正影响数据浏览体验的,还是那个 $cfg['MaxRows']。改之前想清楚:你是要快速扫几百行,还是真需要一次拉几千行出来——后者更适合导出 CSV,而不是靠分页硬扛。



















