2010-10-20 138 views
3

我使用PHP和MySQL開發應用程序。我們有兩個數據庫副本,一個在本地服務器(即我們的結尾),另一個在Web服務器。我們希望同步兩個數據庫,以便在本地數據庫中進行的任何更改也應該反映在Web服務器數據庫上。那可能嗎?? 目前我們正在使用PHP腳本來做這件事......這需要花費太多時間和不可靠。 可以做些什麼以使MySQL在內部激發整個更新和邏輯?我們的本地服務器運行在Windows上,而Web服務器是基於Unix的,並且我們不使用命令行來訪問這兩臺機器,實際上我們使用PHP應用程序來更新和維護數據(即添加新的或更新數據)同步本地數據庫和Web服務器數據庫MySql中

+0

給出請添加詳細信息...什麼平臺/操作系統...您是否有兩臺機器的命令行訪問.... – 2010-10-20 11:32:59

+0

@Pekka有任何問題,如果我們使用PHP腳本比使用MySQL複製? – 2010-10-20 11:42:56

回答

2

MySQL Replications可能是你在找什麼,但是我不建議同步開發和生產數據庫。在網頁發佈後繼續開發時,這可能會讓您有麻煩。常見的方法是有一個用於開發的服務器(虛擬數據,不是公開的),測試(真實數據,不是公開的)和生產(真實數據,公共)。

0

編輯:我認爲一個Web服務器也是一個高手。

在這種情況下,順便看看replication in MySQL作品;它將簡單地將推送到本地數據庫的數據複製到網絡服務器。

+0

我認爲這是主從當地存在主機和網絡服務器是從實際..在我第一次在系統上這樣工作 – 2010-10-20 11:40:18

-1

將數據與Web服務器數據庫本地數據庫MySql中,您可以通過使用複製實現這一功能。在這裏我有一些SQL命令來執行復制

1)。在這裏你需要兩臺電腦,如果你是爲了測試目的離線進行的,第一臺電腦將是你的主設備,而另一臺將作爲從設備。

2)。檢查機器的IP地址。 3)。 192.168.1.20

機2: - - :192.168.1.21

,然後打開你的Mysql和啓動上輸入這些命令,我​​有兩個以下這些電腦

機1執行它在localhost兩臺機器下面

---------------- Commands for SERVER-1 ------------------ 
IP-Address e.g. = 192.168.1.20 
--------------------------------------------------------- 

CREATE USER 'server1'@'%' IDENTIFIED BY '12345'; 

GRANT REPLICATION SLAVE ON *.* TO 'server1'@'%' IDENTIFIED BY '12345'; 

FLUSH TABLES WITH READ LOCK; 

SHOW MASTER STATUS; 

UNLOCK TABLES; 


---------------- Commands for SERVER-2 ----------------- 
IP-Address e.g. = 192.168.1.21 
-------------------------------------------------------- 

STOP SLAVE; 

RESET SLAVE; 

CHANGE MASTER TO 
MASTER_HOST = '192.168.1.20', 
MASTER_USER = 'server1', 
MASTER_PASSWORD = '12345', 
MASTER_PORT = 3306, 
MASTER_LOG_FILE = 'Type_your_log_file_name', 
MASTER_LOG_POS = TYPE_YOUR_LOG_POSITION_HERE, 
MASTER_CONNECT_RETRY = 10, 

START SLAVE; 

SHOW SLAVE STATUS \G; 
+0

雖然此鏈接可以回答這個問題,最好是包括的主要部分在這裏回答並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 – 2015-06-16 10:03:08

+0

謝謝你的建議@NarendraSisodia。現在檢查出來,我更新了整個答案現在很好? – 2015-08-19 05:36:24

相關問題