2012-03-11 133 views
4

我在PHP中使用自制客戶系統,使用本地mySQL數據庫運行。Mysql在離線互聯網狀態下的使用

現在我有另一臺計算機在不同的位置也必須使用這個數據庫。所以我給這個mysql數據庫通過互聯網可到達的服務器。

我的問題是現在,第一個經常有與互聯網連接問題,然後程序將無法正常工作。 但它必須每次都工作!

現在我不知道我該如何處理這個問題?

  • 一個本地數據庫和一個在互聯網上,但我應該如何合併它們?
  • 我應該在每臺電腦上製作一個本地數據庫,並將它們放在一起嗎?
  • 我也想改變這個框架體系背後symfony2那麼有沒有用這個框架(例如doctrine?)

感謝您的幫助來解決這個問題的方法!

更新: 我的限制是第一臺計算機上的互聯網連接無法消除。

+0

-2因爲?如果你不喜歡這個問題,請給我反饋!謝謝 – Neysor 2012-03-11 19:21:33

+0

100%的正常運行時間需要多重冗餘,即使這樣也很難實現。如果你不能有任何停機時間,你需要在多個地點同步多個dbs。 – 2012-03-11 19:29:52

+0

如果兩臺計算機都在同一個局域網上,你可以讓MySQL監聽本地地址並從另一臺服務器連接到它......考慮到你需要啓用你的mysql用戶從其他服務器連接 – 2012-03-11 19:29:55

回答

2

如果您確實有以下限制:(1)無法將數據庫從具有錯誤連接的計算機移出;(2)無法修復不良連接;你將不得不在第二臺機器上保留某種本地實例。

我會嘗試從與第二臺機器連接不良的第一臺機器進行master-master複製。我不確定這將會是多麼可靠,因爲第一臺機器的不良連接會導致複製失敗。如果一臺或兩臺機器都使用舊版本的MySQL,則可能會推斷此問題。例如,MySQL 5.5可以配置爲actively monitor replication connectivity

如果大部分應用程序都使用READS而不是WRITES,也許可以在第二臺機器上安裝Memcached(或類似的東西),以便應用程序可以從本地內存中獲取數據,而無需連接到MySQL服務器。

+0

我會測試這個。聽起來是我尋找的方式! – Neysor 2012-03-12 16:39:01

0

有幾種方法可以實現您想要的功能(儘管可能不完全如您所述),但最好的方法是將數據庫託管在沒有Internet連接問題的服務器上。尋找允許遠程MySQL連接的主機。

+0

1 )在計算機上的數據庫沒有問題2)有問題的計算機無法建立連接到該數據庫 - >有問題的計算機無法運行程序 - >這是什麼不應該發生,並會發生在你的情況,如果我確實瞭解你。謝謝你的評論! – Neysor 2012-03-11 19:35:00

+0

是的,具有連接問題的計算機在這種情況下會遇到問題,但至少不會影響實際應用。你可以同步MySQL數據庫來達到你想要的結果,但IMO對於這樣的東西來說是過分的。不過,看看:http://www.mysql.com/products/workbench/(同步軟件) – Ynhockey 2012-03-11 20:13:14

相關問題