2012-02-21 126 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

相關問題