2011-11-18 146 views
0

我有2個數據庫MySQL數據庫更新

數據庫A - 爲站點A

數據庫B - 對於站點B

兩個數據庫具有相同的結構。 這些數據庫中的表是User。我想要做的是,如果用戶註冊,編輯他的信息,從站點A刪除他的帳戶,然後它的影響顯示在站點B以及vise verca。

我需要使用一些MYSQL函數來組合兩個數據庫嗎?還是我每秒用cron運行一個php文件,並在文件中放入一些代碼來檢查它並執行此操作(我不認爲這是正確的方法) 。任何形式的幫助將不勝感激。

P.S它不是一個自定義的PHP工作。我正在使用CMS。我不想與這些數據庫的所有其他表執行此操作,因爲這兩個站點在其各自數據庫的其他表中都包含完全不同的數據。他們只是分享他們的用戶(可能你說它像一個網站)。我想更新用戶表和用戶詳細信息表。 感謝

回答

0

這聽起來像你想要複製。如果你真的需要在A和B上寫數據,你需要主 - 主複製,這不是一個簡單的步行路徑。小心你這樣做之前想想;)

你也可以檢查出Tungsten Replicator。它是開源的,可以做一些「幾乎複製」的東西,可以滿足你的需求。

0

這聽起來像你說的話是,站點A和站點B共享相同的用戶表。如果是這種情況,那麼你應該只使用一個用戶表。您可以通過包含數據庫名稱在MySQL中跨數據庫進行查詢:

SELECT username from siteA.users where user_id = 3 
+0

第二站點數據庫是遠程的(這兩個數據庫不是同一臺服務器上)。 –

+0

如果使用AUTO_INCREMENT用戶表你有麻煩了,然後的關鍵。 – gview

0

如果您有預算,則可以在羣集模式下使用mysql。 或者feed所有將A中的任何更新插入到B中。 或者正如您所提到的那樣使用Cronjob。 或者爲db寫一個api。並在那裏你插入/更新。