MySql组合来自远程数据库服务器的数据

时间:2012-02-21 05:50:53

标签: mysql mysqldump remote-server

我的主办公室有一个mysql数据库,有4个异地服务器,用于事件和收集客户数据。当我将服务器带回家庭办公室时,我需要将所有数据从场外数据库发送到主数据库,而不会覆盖现有数据,这样我就可以清除远程数据库并将其重新发送到下一个事件。 / p>

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

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

注意: 场外服务器在事件中没有互联网连接,并且场外服务器在办公室时没有连接到LAN。

最终我试图找出如何做到这一点,所以我可以把它扔进脚本。

2 个答案:

答案 0 :(得分:0)

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

如果您想使用mysqldump,那么我认为以下内容应该有效:

  1. 使用mysqldump
  2. 将事件中的数据库转储到文件中
  3. 为您的主数据库实例创建一个临时数据库(因此您的primary_db和temporary_db在结构上完全相同且位于同一个mysql实例中)
  4. 将转储加载到临时DB
  5. 从临时数据库到主数据库运行 INSERT INTO ... SELECT

    INSERT INTO primary_db.customer(name,address)SELECT name,address FROM temporary_db.customer

答案 1 :(得分:0)

您可以配置与drop相关的mysqldump行为或在命令行中替换/插入。

尝试

mysqldump --help

您也可以使用INSERT SELECT

您还可以使用SELECT CONCAT(创建CSV)和LOAD DATA来导入CSV语句。