MySQL中的主從複製
條件
- 主庫開啓binlog日誌(設置log-bin參數)
- 主從server-id不同(這個要小心)
- 從庫服務器能連通主庫
原理
- 從庫生成兩個線程,一個
I/O線程
,一個SQL線程
; I/O線程
去請求主庫的binlog
,並將得到的binlog日誌寫到relay log(中繼日誌)
文件中;- 主庫會生成一個
log dump 線程
,用來給從庫I/O線程
傳binlog; SQL 線程
,會讀取relay log文件中的日誌,並解析成具體操作,來實現主從的操作一致,而最終數據一致
步驟
-
修改主從服務配置文件,server-id不同;
-
配置完成後,保存並重啓主MySQL數據庫;
-
在主服務器上建立帳戶並授權slave服務器,
GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY '123456';
-
登錄主服務器的mysql,查詢master的狀態,
show master status;
-
配置從服務器Slave
change master to master_host='192.168.33.110', master_user='slave', master_password='123456', master_log_file='mysql-bin.000001', master_log_pos=315; start slave; # 啓動從服務器複製功能
-
檢查從服務器複製功能狀態
show slave status \G