MySQL是一種流行的關(guān)系型數(shù)據(jù)庫(kù),它在許多現(xiàn)代應(yīng)用程序中扮演著重要的角色。在多服務(wù)器環(huán)境下,如果一臺(tái)MySQL服務(wù)器中的數(shù)據(jù)變化應(yīng)該立即在其他服務(wù)器中反映出來(lái),就需要手動(dòng)同步MySQL數(shù)據(jù)庫(kù)。
1. 確定需要同步的服務(wù)器 首先確定要同步的數(shù)據(jù)庫(kù)服務(wù)器,假設(shè)我們有兩個(gè)服務(wù)器,它們的IP地址分別為192.168.1.1和192.168.1.2。 2. 配置主服務(wù)器 在需要做主服務(wù)器的數(shù)據(jù)庫(kù)服務(wù)器上,修改my.cnf文件,對(duì)于Linux系統(tǒng)來(lái)說(shuō),一般在/etc/mysql/my.cnf路徑下。添加如下的內(nèi)容: log-bin=mysql-bin server-id=1 其中l(wèi)og-bin=mysql-bin用于開(kāi)啟二進(jìn)制日志功能,server-id=1用于唯一標(biāo)識(shí)此服務(wù)器。 3. 配置從服務(wù)器 在需要做從服務(wù)器的數(shù)據(jù)庫(kù)服務(wù)器上,同樣修改my.cnf文件。具體操作方法與在主服務(wù)器中修改文件的方式一樣,只是此時(shí)要將server-id改為不同的值,比如server-id=2。 4. 同步數(shù)據(jù) 在從服務(wù)器上執(zhí)行如下命令: CHANGE MASTER TO MASTER_HOST='192.168.1.1',MASTER_USER='replication', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=98; 其中MASTER_HOST是主服務(wù)器的IP地址,MASTER_USER和MASTER_PASSWORD是主服務(wù)器上用于同步數(shù)據(jù)的用戶和密碼,MASTER_LOG_FILE和MASTER_LOG_POS是主服務(wù)器上二進(jìn)制日志文件的位置,這些信息都可以在主服務(wù)器的mysql_bin.index文件中找到。 5. 開(kāi)始同步 在從服務(wù)器上執(zhí)行如下命令,啟動(dòng)同步功能: START SLAVE; 我們可以使用如下命令來(lái)查看同步狀態(tài): SHOW SLAVE STATUS\G 其中Seconds_Behind_Master字段表示當(dāng)前從服務(wù)器的數(shù)據(jù)與主服務(wù)器的數(shù)據(jù)差距有多少秒鐘。 6. 維護(hù)同步 如果需要維護(hù)同步,例如停掉從服務(wù)器,只需要執(zhí)行如下命令: STOP SLAVE; 當(dāng)需要重新啟動(dòng)同步時(shí),先執(zhí)行: RESET SLAVE; 然后重新執(zhí)行從服務(wù)器上同步數(shù)據(jù)的命令即可。