什么是mysql主從復(fù)制?
MySQL主從復(fù)制是一種數(shù)據(jù)同步和備份方式,通過從一個MySQL主服務(wù)器復(fù)制數(shù)據(jù)到一個或多個MySQL從服務(wù)器。主服務(wù)器處理所有的寫入操作,所有寫入操作被復(fù)制到一個或多個從服務(wù)器以實現(xiàn)高可用性和數(shù)據(jù)冗余。
配置主服務(wù)器
首先需要在主服務(wù)器上開啟二進(jìn)制日志,二進(jìn)制日志包含所有寫入操作。在my.cnf文件中增加以下配置:
log-bin=mysql-bin
注意:請確保在my.cnf文件中沒有類似于skip-log-bin或log-bin = ""的配置。
創(chuàng)建從服務(wù)器
在從服務(wù)器上使用以下命令創(chuàng)建一個只讀用戶:
CREATE USER 'replica'@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO 'replica'@'%'
配置從服務(wù)器
首先需要停止從服務(wù)器,然后使用以下命令配置從服務(wù)器:
CHANGE MASTER TO MASTER_HOST='主服務(wù)器的IP地址', MASTER_USER='replica', MASTER_PASSWORD='password', MASTER_LOG_FILE='主服務(wù)器當(dāng)前二進(jìn)制日志文件名稱', MASTER_LOG_POS=0;
注意:MASTER_LOG_FILE和 MASTER_LOG_POS應(yīng)該設(shè)置為主服務(wù)器二進(jìn)制日志最后寫入的位置。您可以通過運行以下命令查找它們:
SHOW MASTER STATUS;
啟動復(fù)制
使用以下命令啟動從服務(wù)器上的復(fù)制進(jìn)程:
START SLAVE;
通過運行以下命令檢查復(fù)制狀態(tài):
SHOW SLAVE STATUS \G;
在命令結(jié)果中,Slave_IO_Running和 Slave_SQL_Running應(yīng)該都為YES,表示從服務(wù)器已經(jīng)成功連接到主服務(wù)器并開始復(fù)制數(shù)據(jù)。