簡體   English   中英

在MySql中同步本地數據庫和Web服務器數據庫

[英]to sync local database and web server database in MySql

我正在使用PHP和Mysql來開發應用程序。 我們有兩個數據庫副本,一個在本地服務器(即我們的終端),一個在Web服務器上。 我們希望同步數據庫,以便在本地數據庫中進行的任何更改也應反映在Web服務器數據庫上。 那可能嗎?? 目前我們正在使用PHP腳本來實現這一目標......這需要花費太多時間並且不可靠。 可以做些什么讓MySQL在內部觸發整個更新和邏輯?

注意: - 我們的本地服務器運行在Windows上,而Web服務器是基於Unix的,我們不使用命令行訪問這兩台機器,實際上我們使用PHP應用程序更新和維護數據(即添加新的或更新數據)

MySQL復制可能是您正在尋找的,但我不建議同步開發和生產數據庫。 在網頁發布后繼續開發時,這會讓您遇到麻煩。 常見的方法是開發服務器(虛擬數據,不公開),測試(真實數據,不公開)和生產(真實數據,公共)。

編輯 :我認為網絡服務器也是一個大師。

在這種情況下,請看MySQL中的復制方式; 它只會將推送到本地數據庫的數據復制到網絡服務器。

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

1)。 在這里你需要兩台PC,如果你是離線進行測試,第一台PC將是你的MASTER而其他PC將充當SLAVE。

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

3)。 我是在Localhost上使用以下兩台PC執行的

機器-1: - 192.168.1.20

機器-2: - 192.168.1.21

然后打開你的Mysql並開始在兩台機器上輸入這些命令,如下所示

---------------- 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;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM