MySQL復(fù)制是指將指定的數(shù)據(jù)從一個MySQL服務(wù)器復(fù)制到另一個MySQL服務(wù)器的過程。復(fù)制可以實現(xiàn)高可用性、擴容、備份和負載均衡等功能。在MySQL的復(fù)制中,有主服務(wù)器和從服務(wù)器之分。
要搭建MySQL復(fù)制實例,需要先準備好主服務(wù)器和從服務(wù)器,并保證它們之間網(wǎng)絡(luò)的連通性。然后,在主服務(wù)器上進行如下操作:
# 配置主服務(wù)器 server-id=1 # 設(shè)置服務(wù)器唯一ID (多個主服務(wù)器時每個主服務(wù)器ID要不同) log-bin=mysql-bin # 開啟二進制日志 binlog-do-db=mydb # 記錄mydb數(shù)據(jù)庫中的操作到二進制日志 binlog-ignore-db=mysql # 不記錄mysql庫中的操作到二進制日志
接下來,在從服務(wù)器上進行如下操作:
# 配置從服務(wù)器 server-id=2 # 設(shè)置服務(wù)器唯一ID (多個從服務(wù)器時每個從服務(wù)器ID要不同) relay-log=mysql-relay # 開啟中繼日志 read-only=1 # 設(shè)置只讀模式
然后在從服務(wù)器上運行如下命令:
# 開始從主服務(wù)器復(fù)制數(shù)據(jù) CHANGE MASTER TO MASTER_HOST='master-host', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_PORT=3306, MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=120; START SLAVE;
其中MASTER_HOST
為主服務(wù)器IP地址,MASTER_USER
和MASTER_PASSWORD
為連接主服務(wù)器的用戶名和密碼,MASTER_PORT
為主服務(wù)器端口,默認為3306,MASTER_LOG_FILE
和MASTER_LOG_POS
分別代表主服務(wù)器二進制日志文件名和位置。
最后,可以通過從服務(wù)器上的SHOW SLAVE STATUS\G;
命令查看當(dāng)前從服務(wù)器的復(fù)制狀態(tài)。