mysql主從配置實戰非同步複製-半同步複製
主從複製配置實戰
-
/etc/mysql/my.cnf 主庫
log-bin=/var/lib/mysql/mysql-bin
server-id=123454 -
/etc/mysql/my.cnf 從庫
log-bin=/var/lib/mysql/mysql-bin
server-id=111111 -
主庫全域性上鎖
flush tables with read lock; -
檢視主庫binlog狀態
show master status\G -
備份主庫
mysqldump -h xxxx -P 33306 -u root --all-databases --master-data > dbdump.sql -p -
將備份檔案複製到從庫
cp ../mysql8/dbdump.sql . -
釋放主庫鎖
unlock tables; -
進入從庫msyql客戶端,匯入備份檔案
source dbdump.sql; -
檢視從庫狀態
show slave status\G -
修改從庫對應的主庫
change master to master_host="xxxx", master_user="root", master_log_file="mysql-bin.000001", master_log_pos=156; -
開啟從庫
start slave; -
停止從庫、重置從庫
stop slave;
reset slave; -
重新配置從庫對應的主庫,需要輸入埠號和密碼
change master to master_host="4xxxxxxx", master_port=xxxx, master_user="root", master_password='xxxx', master_log_file="mysql-bin.000001", master_log_pos=156; -
向主庫插入一條資料,從庫也跟著有了
主庫和從庫的狀態是一致的
show master status;
show slave status;
預設主從採用的非同步複製
-
如何使用半同步複製,主要在主和從配置檔案中加入三行
plugin-load = "rpl_semi_sync_master=semisync_master.so;rpl_semi_sync_slave=semisync_slave.so"
rpl-semi-sync-master-enabled = 1
rpl-semi-sync-slave-enabled = 1 -
檢視主從脫庫時間(只有半同步複製才有這個時間,非同步複製沒有的)
show variables like "rpl_semi_sync_master_timeout"; -
檢視正在做的執行緒
show processlist\G
到此主從複製完成了。