脚本转储两个单独的mysql数据库并创建第三个数据库

时间:2014-08-14 09:19:26

标签: mysql sql database

我目前在两台独立的Linux机器上有两个mysql数据库。我希望能够从数据库a转储某些表(例如e,f,g),并从数据库b转储其他表(例如x,y,z)。然后我想将两个转储合并到一个数据库中。数据库具有相同的模式。

我需要一个脚本来执行此操作,因为我需要多次执行此操作。

如果您想知道为什么需要这样做,我在实时环境中有一个应用程序,但如果我想从实时环境创建多个新的测试实例,那么users表就会太大。如果我从preprod环境创建了新的测试实例,那么它将缺少实时的某些基本数据。

我已经查明了如何做到这一点,我找不到任何东西 - 有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以使用mysqldump命令(http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html)。

例如,对于数据库ab和表格efgx,{{1} },y,它会是这样的:

z

(你应该用大写字母替换大写字母的实际值)

第一行将数据(没有表结构,因为有标志mysqldump -u USER -pPASSWORD -h HOST_A a e -t >> dump.sql mysqldump -u USER -pPASSWORD -h HOST_A a f -t >> dump.sql mysqldump -u USER -pPASSWORD -h HOST_A a g -t >> dump.sql mysqldump -u USER -pPASSWORD -h HOST_B b x -t >> dump.sql mysqldump -u USER -pPASSWORD -h HOST_B b y -t >> dump.sql cat dump.sql | mysqldump -u USER -pPASSWORD -h HOST_C DATABASE_C )转储到文件-t,最后用于将行插入到不同的数据库(HOST_C中的DATABASE_C) )。

如果你想要一个脚本,只需将命令放在一个bash文件中,然后对你想要的变量进行参数化。