Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 有没有办法查看PHPMyAdmin在数据库上运行的导出查询?_Mysql_Phpmyadmin - Fatal编程技术网

Mysql 有没有办法查看PHPMyAdmin在数据库上运行的导出查询?

Mysql 有没有办法查看PHPMyAdmin在数据库上运行的导出查询?,mysql,phpmyadmin,Mysql,Phpmyadmin,我面临的是比较多个数据库的结构,但不是数据库的整体,而是它们共同持有的表。我可以通过界面导出它们的结构,但每次都必须在表列表中单击以定义要导出的内容。是否有一种方法可以访问PHPMyAdmin运行的导出查询,以便每次只复制粘贴?PHPMyAdmin 4.5.0+支持导出模板。在导出屏幕上,您可以使用所需的设置创建导出模板。它们是每台服务器的,但我们可以做些什么 默认情况下(可在PMA的配置文件中配置),PMA将这些导出模板存储在数据库phpmyadmin和表PMA\uuuu导出模板中 如果您可以

我面临的是比较多个数据库的结构,但不是数据库的整体,而是它们共同持有的表。我可以通过界面导出它们的结构,但每次都必须在表列表中单击以定义要导出的内容。是否有一种方法可以访问PHPMyAdmin运行的导出查询,以便每次只复制粘贴?

PHPMyAdmin 4.5.0+支持导出模板。在导出屏幕上,您可以使用所需的设置创建导出模板。它们是每台服务器的,但我们可以做些什么

默认情况下(可在PMA的配置文件中配置),PMA将这些导出模板存储在数据库
phpmyadmin
和表
PMA\uuuu导出模板

如果您可以完全访问服务器上的所有数据库,包括
phpmyadmin
one,则可以执行以下操作:

  • 在其中一台服务器上创建具有所需设置的导出模板
  • phpmyadmin.pma\uu导出模板
    表导出导出模板本身
  • 将模板导入到下一台服务器上的
    phpmyadmin.pma\uu export\u模板中
  • 转到此处的导出屏幕并加载模板

phpMyAdmin 4.5.0+支持导出模板。在导出屏幕上,您可以使用所需的设置创建导出模板。它们是每台服务器的,但我们可以做些什么

默认情况下(可在PMA的配置文件中配置),PMA将这些导出模板存储在数据库
phpmyadmin
和表
PMA\uuuu导出模板

如果您可以完全访问服务器上的所有数据库,包括
phpmyadmin
one,则可以执行以下操作:

  • 在其中一台服务器上创建具有所需设置的导出模板
  • phpmyadmin.pma\uu导出模板
    表导出导出模板本身
  • 将模板导入到下一台服务器上的
    phpmyadmin.pma\uu export\u模板中
  • 转到此处的导出屏幕并加载模板

如果只想导出元数据,可以使用
mysqldump--no data

前几天,我为公司的一位开发人员做了这件事,他对自己数据库的登台实例与生产实例之间的差异感到困惑

我跑:

mysqldump --no-data --skip-add-drop-table --skip-add-locks -h $staging_host > staging-dump.sql
mysqldump --no-data --skip-add-drop-table --skip-add-locks -h $prod_host > prod-dump.sql
这只转储CREATETABLE语句。它省略了任何包含表的数据内容的INSERT语句。还有一些关于角色集的评论和无害的东西。忽略这些

我在
vim
中编辑了每个文件,以从每个表格创建中删除自动增量选项。当然,如果表中的行数不同,这些将不同。下面是
vim
命令:

:%g/AUTO_INCREMENT=[0-9]* /s/// 
然后将文件并排区分:

diff -y staging-dump.sql prod-dump.sql > diff

输出并排显示文件(至少尽可能多地显示),中间有一个字符列。中间列将有
|
来指示不同的行,或者
来指示仅存在于第二个文件中的行。

如果只想导出元数据,可以使用
mysqldump--no data

前几天,我为公司的一位开发人员做了这件事,他对自己数据库的登台实例与生产实例之间的差异感到困惑

我跑:

mysqldump --no-data --skip-add-drop-table --skip-add-locks -h $staging_host > staging-dump.sql
mysqldump --no-data --skip-add-drop-table --skip-add-locks -h $prod_host > prod-dump.sql
这只转储CREATETABLE语句。它省略了任何包含表的数据内容的INSERT语句。还有一些关于角色集的评论和无害的东西。忽略这些

我在
vim
中编辑了每个文件,以从每个表格创建中删除自动增量选项。当然,如果表中的行数不同,这些将不同。下面是
vim
命令:

:%g/AUTO_INCREMENT=[0-9]* /s/// 
然后将文件并排区分:

diff -y staging-dump.sql prod-dump.sql > diff

输出并排显示文件(至少尽可能多地显示),中间有一个字符列。中间列将有
|
来指示不同的行,或
以指示仅存在于第二个文件中的行。

您可以查询有关表的信息并比较这些查询的结果。我假设您也有不同的服务器,否则会很简单(使用导出模板)。您是否可以访问服务器上的所有数据库,包括PMA自己的数据库
phpmyadmin
?如果是,您可以在一个模板上创建导出模板,然后从
phpmyadmin.pma\uu export\u templates
导出模板本身。然后可以在下一台服务器上导入模板,然后使用它导出实际数据。[注意:这仅适用于PMA 4.5.0+]或者,您可以使用浏览器扩展创建一个宏,按照您需要的方式填充导出表单,然后在每台服务器上运行此宏。@CherryDT我从来没有听说过您可以自己导出模板,这很方便地解决了我的问题。如果你想把这个作为答案提交,我会把它标记为接受。干杯我最初并没有把它作为答案发布,因为我现在手边没有便携式维修辅助设备来测试它,这是一个强烈的预感,它会工作。但是如果它对您有效,很好-添加为答案。您可以查询有关表的信息并比较这些查询的结果。我假设您也有不同的服务器,否则它会很简单(使用导出模板)。您是否可以访问服务器上的所有数据库,包括PMA自己的数据库
phpmyadmin
?如果是,您可以在一个上创建导出模板,然后从
phpmyadmin.pma导出模板本身_