2010-11-02 117 views
6

大家好, 我有一個問題 如果我有一臺電腦運行sqlite,並且我想讓sqlite在外部網絡中同步Mysql服務器。 如果sqlite中的數據已被更改/修改,我如何同步我的MYSQL數據庫和sqlite,以便在更改/修改MYSQL數據庫中的數據時,sqlite中的數據將被(更改/修改)?如何將sqlite同步到Mysql

謝謝大家。

+0

數據庫同步是一個非常複雜和廣泛的領域。有許多技術和工具,所有這些都涉及這樣或那樣的妥協。總之,對此沒有簡短的回答,尤其是在不同的數據庫引擎之間。 – 2010-11-02 08:14:09

回答

4

您可以嘗試greplicator

geplicator是一個實時解決方案 旨在從MySQL 數據庫將數據複製到其他關係 數據庫,如Oracle,微軟 的SQL Server,IBM DB2 UDB和MySQL的。

+0

greplicator鏈接已死亡。你有新的鏈接? – hriziya 2016-01-05 04:48:18

2

我有一個Android的SQLite數據庫和中央MySql數據庫之間的雙向同步問題。這個問題真的出現在插入時,因爲它承認了複製主鍵的可能性。

我沒有建立一個系統,而使用硬件和基於時間的GUID主鍵而不是簡單的單調遞增主鍵。理論上說,如果新記錄插入到使用sqlite的手機上,或者在使用mysql的中央服務器中插入,那麼這些密鑰永遠不會衝突,因爲它們是全局唯一的。

不幸的是,這意味着您已經獲得了主要的密鑰管理業務,而不是僅僅採用兩個數據庫引擎自動生成的業務。但從理論上講,這種方法可以將來自許多不同手機的數據輕鬆融入中央數據庫,並重新分配給所有手機。我正在考慮這個方法來解決我的Android問題,儘管我仍然希望找到一個已經制定出來的解決方案。

+2

後續工作:我在Android上構建了一個guid鍵實現,並在web服務上使用django和python構建了一個補充實現。我從Android ID和System.currentTimeMillis()和System.nanoTime()的組合中創建自己的密鑰。雖然由此產生的密鑰不是順序的,但至少它們是單調的,我希望能夠改善集羣。指導看起來像這樣:'A000002276D37D-01339e06f7ab-5be854e'。第一位是Android ID,第二位是currentTimeMillis,第三位是nanoTime的後7位十六進制數字。我也使用靜態'lastGuid'來確保我永遠不會重複一個id。 – joecascio 2011-11-13 17:50:05