標籤:
Master(主)操作
實驗機:兩台
IP:192.168.1.5 192.168.1.10
作業系統:Linux RedHat 6.5
Mysql版本:5.6.31
# vim /etc/my.cnf
#log_slave_updates 注釋掉這行
server-id=1 將id號改為1
Slave(從)操作
#:vim /etc/my.cnf
#log_slave_updates 注釋掉這行
server-id=2 #將server_id改為2
主從(操作):
mysql>reset master;
mysql>reset slave all;
~~~~~~~~~~~~~192.168.1.5~~~~~~~~~~~~~~~~
做主:
grant replication slave on *.* to ‘losnau‘@‘192.168.1.%‘ identified by ‘losnau‘; #給13slave進行授權複製
mysql>flush tables with read lock;
mysql>show master status;
mysql>unlock tables;
做從
change master to master_host=‘192.168.1.5‘,master_user=‘losnau‘,master_password=‘losnau‘, master_log_file=‘mysql-bin.000001‘,master_log_pos=120;
mysql>start slave;
mysql>show slave status\G;
~~~~~~~~~~~~~~192.168.1。10~~~~~~~~~~~~~~~~~~~
做主
grant replication slave on *.* to ‘losnau‘@‘192.168.1.%‘ identified by ‘losnau‘; #給13slave進行授權複製
mysql>flush tables with read lock;
mysql>show master status;
mysql>unlock tables;
做從
change master to master_host=‘192.168.1.10‘,master_user=‘losnau‘,master_password=‘losnau‘, master_log_file=‘mysql-bin.000001‘,master_log_pos=120;
mysql>start slave;
mysql>show slave status\G;
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
常見故障解決
1. 一般的異常只需要跳過一步即可恢複
類比故障,建立主從複製之前.在主上建立一個CC庫,
在開啟主從複製,從的IO都是為YES後,在主上建立一個gongda庫,看看從庫是否同步成功?
如果成功,接下來類比故障.在主上將CC刪除掉.在從看slave狀態是不是就開始報錯了??
解決方案如下:
> stop slave;
>SET GLOBAL sql_slave_skip_counter = 1; 遇到錯誤直接跳過,繼續恢複
> start slave;
2.斷電導致主從不能同步時,通主庫的最後一個bin-log日誌進行恢複
在主程式庫伺服器上,mysqlbinlog mysql-bin.xxxx > binxxxx.txt
tail -n 100000 binxxxx.txt > tail-binxxxx.txt
vim tail-binxxxx.txt 開啟tail-binxxxx.txt檔案找到最後一個postion值
然後在從庫上,change host to 相應正確的值
>stop slave;
>change master to master_host=‘ip‘, master_user=‘username‘, master_password=‘password‘, master_log_file=‘mysql-bin.xxxx‘, master_log_pos=xxxx;
>start slave;
>show slave status\G;
3.主鍵衝突、表已存在等錯誤碼如1062,1032,1060等,可以在mysql主設定檔指定
略過此類異常並繼續下條sql同步,這樣也可以避免很多主從同步的異常中斷
[mysqld]
slave-skip-errors = 1062,1032,1060
Mysql主從複製(基於Log)