[英]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.