2012-02-21 113 views
1

我在主办公室有一个mysql数据库,有4个离线服务器用于事件并收集客户数据。当我将服务器带回家庭办公室时,我需要将所有数据从场外数据库发送到主数据库,而不会覆盖现有数据,以便我可以清除远程数据库并将其重新发送到下一个事件。MySql合并来自远程数据库服务器的数据

我看着mysqldump,它总是丢弃所有以前的数据,这将是非常糟糕的。

如果有人能帮助我指出正确的方向,将不胜感激。

备注: 异地服务器在事件中没有互联网连接,在办公室时,异地服务器没有连接到局域网。

最终,我想弄清楚如何做到这一点,所以我可以把它放在脚本中。

回答

0

我会用一个小程序(用Java编写的)从一个临时数据库中读取数据并将其插入到主数据库中来进行这种操作,因为它可以完全控制被复制的内容,不。

如果你想用mysqldump这一点,那么我认为下面应该工作:

  1. 使用mysqldump
  2. 转储一直在一个事件到一个文件数据库中创建一个临时DB到您的主数据库实例(所以你primary_db和temporary_db在结构上相同,并且在同一台MySQL实例)
  3. 负载转储到临时DB
  4. 运行INSERT INTO ... SELECT从临时DB初级DB:

    INSERT INTO primary_db.customer(姓名,地址)SELECT名字,地址FROM temporary_db.customer

+0

我正在考虑制作一个快速的vb应用程序,将所有数据存储在数据集中,并在for循环中插入所有记录。 Thx寻求帮助。 – 2012-02-21 07:15:21

0

您可以配置与滴的mysqldump的行为或更换/插入在命令行中。

尝试

mysqldump --help 

你也可以使用INSERT SELECT

您还可以使用SELECT CONCAT(创建CSV)和LOAD DATA导入CSV报表。

+0

我会看看csv文件。谢谢 – 2012-02-21 07:17:31

相关问题