首页 > 解决方案 > phpmyadmin:不同数据库中的 pma__ 表

问题描述

我们在与 CentOs7 相同的(虚拟)网络服务器上拥有我们的测试网络服务器和主网络服务器。由于几个原因,将它们都放在那儿对我们(小公司)来说非常方便。

我们在同一台服务器上也有测试数据库和主数据库,这也很方便,原因有几个。

我们首先通过 directadmin/phpmyadmin 创建了主数据库,之后才创建了测试数据库。我们为 phpmyadmin 使用两种不同的登录名:一种只访问主数据库。为了访问测试数据库和主数据库以及系统数据库,我们现在使用 root 登录,方便维护所有数据库(测试和主数据库等)。

我们有时会同步两个数据库(主要是从 main 到 test 的数据以便能够使用最新数据进行测试,以及在测试代码和 db 之后从 test 到 main 的结构)。我们想要复制的部分结构是一些 phpmyadmin 的好东西,比如带有外键的弹出窗口。phpmyadmin 为此使用一组 pma__xxx 表,例如pma__table_info.

问题是:我们现在在两个数据库中都有这组表,包括测试数据库和主数据库。

在这些表中,我们总能找到两个数据库的记录。例如,在测试服务器上,可能有pma__table_info.db_name设置到主服务器的记录,也有设置到测试服务器的记录。在主服务器中也是如此。然而,表格的内容却完全不同。而且我注意到,如果两个pma__table_info表中都有记录,则系统不一定会pma__table_info从该表所在的服务器获取 -info。

我不明白(也不是在谷歌之后查看https://docs.phpmyadmin.net/en/latest/config.html):

  1. 为什么 pma__ 表集没有单独的数据库?为什么它在我们的数据库中?
  2. 为什么我们的每个数据库上都有两组 pma__ 表?这仅仅是因为我们制作了一个数据库副本吗?但是为什么 phpmyadmin 然后实际上然后使用副本中的记录而不是原始记录?为什么两个数据库上的表如此不同?
  3. 所以似乎两个数据库上的 pma 表都用于两个数据库。我如何知道何时使用哪组表?这是否取决于我们使用的 phpmyadmin 登录?
  4. 我们是否应该将 pma__ 表合并到一个单独的数据库中,并通过配置告诉 phpmyadmin 使用这个单独的数据库?如果我们使用只能访问主数据库的登录名登录,那会起作用吗?

谷歌搜索没有给出基本答案,只有技术内容,但我需要先了解上述基本内容,然后才能弄清楚技术内容。

也非常欢迎提供指向基本 pma__ 表信息(技术配置信息除外)的链接。

太感谢了!

标签: mysqldatabasephpmyadmin

解决方案


所以我似乎最终自己找到了答案。如果我哪里错了,请纠正。

  1. 因为phpmyadmin被正常配置为使用当前db。这样当您只有一个数据库时它会顺利进行。当您无权访问配置文件时很方便。
  2. 看上面。afaik,phpmyadmin 将使用您在启动 phpmyadmin 后打开的第一个数据库,并且即使在您切换后仍将继续使用此数据库中的表。
  3. 见 2。
  4. 确实。为 pma 创建一个用户和数据库,用它们调整配置文件,你就可以开始了。

推荐阅读