我目前在两台独立的Linux机器上有两个mysql数据库。我希望能够从数据库a转储某些表(例如e,f,g),并从数据库b转储其他表(例如x,y,z)。然后我想将两个转储合并到一个数据库中。数据库具有相同的模式。
我需要一个脚本来执行此操作,因为我需要多次执行此操作。
如果您想知道为什么需要这样做,我在实时环境中有一个应用程序,但如果我想从实时环境创建多个新的测试实例,那么users表就会太大。如果我从preprod环境创建了新的测试实例,那么它将缺少实时的某些基本数据。
我已经查明了如何做到这一点,我找不到任何东西 - 有人可以帮忙吗?
答案 0 :(得分:0)
您可以使用mysqldump命令(http://dev.mysql.com/doc/refman/5.5/en/mysqldump.html)。
例如,对于数据库a
,b
和表格e
,f
,g
,x
,{{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文件中,然后对你想要的变量进行参数化。