如何在多服务器之间同步phpMyAdmin偏好设置_用户表集中存储
phpMyAdmin 用户偏好默认存于 MySQL 的 pma__userconfig 表中,需启用高级功能并统一指向中心数据库;跨服务器同步必须共用该表及 controluser,且登录方式不能为 config 模式。
phpMyAdmin 用户偏好存在哪?
很多朋友可能没留意,你每次在 phpMyAdmin 里调整的主题、SQL窗口大小,甚至导航栏的折叠状态,这些个人偏好都去哪儿了?答案既不在浏览器的 Cookie 里,也不在服务器的临时文件中。实际上,只要启用了它的“高级功能”,这些设置默认就会被记录在 MySQL 数据库里一个名为 pma__userconfig 的表中。关键在于,这个表必须由当前 phpMyAdmin 实例所连接的数据库提供。正因如此,当你的操作环境切换到另一台服务器时,这些偏好设置自然就“跟不过去”了。
免费影视、动漫、音乐、游戏、小说资源长期稳定更新! 👉 点此立即查看 👈
必须启用 pma__userconfig 并统一数据库后端
那么,想让多台服务器上的 phpMyAdmin 共享同一套用户偏好,该怎么办?如果每台服务器背后都是独立的 MySQL 实例,各自维护一份 pma__userconfig 表,同步就永远无法实现。可行的路径其实很明确:让所有的 phpMyAdmin 实例都指向同一个中央数据库。这个库甚至可以是一个专门用来存放 phpMyAdmin 元数据的轻量级实例。要实现这一点,下面几个配置缺一不可:
- 确保所有实例的
$cfg['Servers'][$i]['controluser']和controlpass都指向这个中心库的同一个管理账号。 - 将每个实例的
$cfg['Servers'][$i]['pmadb']参数统一设置为同一个数据库名,比如默认的phpmyadmin。 - 在这个中心库里,只需执行一次
create_tables.sql脚本,创建好包括pma__userconfig在内的所有必要表。 - 特别注意,不要在
config.inc.php里使用$cfg['Sa veDir']或$cfg['TempDir']这类配置去覆盖默认的用户配置存储路径。
用户表集中存储 ≠ 所有设置都自动同步
即便成功共享了 pma__userconfig 表,也别高兴得太早。有几个常见的“坑”会导致你以为同步了,实则没有:
- 登录状态本身(基于 Cookie 或 HTTP Auth)是浏览器层面的,与服务器无关。
- 浏览器本地存储(LocalStorage)里的一些临时状态,比如还没提交的 SQL 查询历史草稿,不会进入中心数据库。
- 如果使用了
$cfg['Servers'][$i]['auth_type'] = 'config'这种硬编码登录方式,用户偏好根本不会被写入pma__userconfig表。 - 更深一层,如果某台服务器的 PHP 会话(session)仍保存在本地磁盘,那么登录状态依然是隔离的。要实现真正的单点登录,还得将会话存储也改为 Redis 或数据库等共享方案。
常见错误:以为改 config.inc.php 就能同步偏好
一个典型的误解是:把 config.inc.php 配置文件复制到所有服务器,偏好自然就同步了。结果发现,每台服务器上的设置还是各记各的账。问题出在哪儿?
config.inc.php管的是全局行为开关(比如是否启用高级功能、默认排序规则),它不负责存储用户个人的偏好选项。- 如果错误地将
$cfg['UserprefsDisallow']设为true,会导致偏好功能被完全禁用,连本地都无法保存。 - 误用
$cfg['Servers'][$i]['user']进行硬编码登录,会导致 phpMyAdmin 跳过对pma__userconfig表的读写流程。 - 还有一个隐蔽的“静默失败”:连接中心库的 MySQL 账号如果没有被授予对
phpmyadmin库的SELECT, INSERT, UPDATE权限,数据写入会失败,但界面上往往没有任何错误提示。
所以,真正能让多服务器偏好同步起效的组合拳是:中心库 + 正确的 controluser 配置 + 启用 pma__userconfig 功能 + 用户使用 Cookie 或 HTTP 认证登录(杜绝 config 模式)。少一样,效果都可能大打折扣。
立即学习“PHP免费学习笔记(深入)”;
相关攻略
phpMyAdmin 用户偏好默认存于 MySQL 的 pma__userconfig 表中,需启用高级功能并统一指向中心数据库;跨服务器同步必须共用该表及 controluser,且登录方式不能为 config 模式。 phpMyAdmin 用户偏好存在哪? 很多朋友可能没留意,你每次在 phpM
PDO预处理不能防住所有SQL注入,因默认模拟预处理会拼接参数,且参数绑定仅适用于值,不适用于表名、列名、ORDER BY等结构化部分,须白名单校验。 为什么PDO预处理不能直接防住所有SQL注入 不少开发者有个常见的误解,以为只要代码里用上了 PDO::prepare(),SQL注入的风险就彻底解
一、编译安装支持Lua的Nginx 想让Nginx直接跑Lua脚本?原生版本可没这本事。你得先给它“装上轮子”——要么直接用打包好的OpenResty,要么手动给Nginx编译集成lua-nginx-module。这一步是基础,没它,后面和ThinkPHP的配合就无从谈起。 1、先去官网把OpenR
ThinkPHP 环境配置安全:别让 env 文件成为你的“后门” ThinkPHP 的 env 文件为什么不能直接放敏感信息 原因其实很直接:在默认的Web服务器配置下, env 文件会被当作一个普通的静态文件来处理。如果部署时路径配置稍有疏忽,攻击者就能直接通过浏览器访问,比如输入 http
ThinkPHP 5 1 的 `think schedule:run` 为什么总不执行任务? 很多开发者遇到这个问题,第一反应是命令写错了。其实不然,真正的“坑”往往在于一个默认配置的缺失:调度监听器没有被启用。ThinkPHP 5 1 的定时任务机制,其核心是依赖一个名为 think schedu
热门专题
热门推荐
《识质存在》中后期配装与打法全解析:从生存到精通 进入《识质存在》的中后期,战场环境陡然严峻。敌人的伤害与生存压力同步攀升,单纯的武器升级已不足以应对挑战。真正的战力构建,是一个系统工程,它涵盖了武器、道具、模块天赋与侵入节点的协同搭配。如果你正为如何配装而困惑,下面的攻略或许能为你指明方向。 一、
《黑袍纠察队》主演揭秘阿什莉隐藏的勇敢!她如何从傀儡CEO到副总统,注射五号化合物长出第二张脸,在祖国人阴影下求生。第五季剧情解析,点击查看! 在埃里克·克里普克打造的《黑袍纠察队》宇宙里,科尔比·米尼菲饰演的阿什莉·巴雷特,绝对算得上最让人过目不忘的角色之一。尽管她在沃特国际的企业和整治阶梯上步步
一路向西斩妖除魔 《遥遥西土》Steam好评如潮 最近Steam上杀出了一匹黑马:由法国独立工作室Evil Raptor开发的4人合作射击游戏《遥遥西土(Far Far West)》,一登陆抢先体验就收获了玩家“好评如潮”的顶级评价。看看数据就知道有多夸张:在超过2700条玩家评价中,好评率稳稳站在
探索Midnight Season 1最快地城排名:S-Tier Collegiate Calamity等攻略,优化刷本效率,提升装备和进度 开门见山地说,在《Midnight》第一赛季里,并非所有地城(Delves)的“性价比”都一样。有的流程紧凑,一路畅通无阻;有的则弯弯绕绕,耗时费力。为了帮你
SpringBoot2 7 x将logback升级到1 3 x以上版本的全过程解析 不少开发者在尝试将SpringBoot 2 7 x项目中的Logback升级到1 3 x或更高版本时,都会遇到一个典型的启动报错。这背后的原因其实很明确:SpringBoot 2 7 x默认依赖的是logback-c





