若是修改了從庫的主機名,而從庫又忘了作relay-log和relay-log-index的配置,估計會致使從庫同步失敗。因爲公司剛改了主機名,寫個博客,後續出問題好進行改進。方案測試經過。mysql
步驟以下:sql
1: 從庫先中止主從複製數據庫
stop slave;網絡
2: 記錄下主從同步的信息(主要是如下兩個信息)ide
show slave status\G測試
Master_Log_File: mysql-bin.000085get
Read_Master_Log_Pos: 120同步
3: 重置數據庫博客
reset slave;io
--> 在這裏,最好設置一個兩個參數,預防後續再改主機名
relay-log = relay-log
relay-log-index = relay-log.index
4: 若是主庫設置給從庫的用戶名和密碼忘記了話,再grant一次(記得就跳過這步了)
grant replication slave on *.* to 'replication'@'192.168.1.2' identified by 'xxx';
5: 從庫設置slave
change master to master_log_file='mysql-bin.000085',master_log_pos=120,master_user='replication',master_password='xxx', master_host='192.168.1.1';
6: 開啓從庫
start slave;
另外,再reset slave後感受得配置下relay-log和relay-log-index,而後重啓下數據。再從第5步開始,這樣後續改主機名就不會影響到了。
若是是主庫沒指定bin-log和bin-log-index,那修改主機名後會怎麼樣,不知道會產生什麼樣的問題和應對方案該怎麼樣。暫時方案以下:
1: 在mysql上找到主的位置,應該是一開始的。位置:4
show master status\G
--> 其實這裏,若是改了主機名,最好在配置裏面指定兩個參數(後續改主機就沒事了)
log-bin=master-bin
log-bin-index = masters-bin.index
2: 先把從庫中止
stop slave;
3: 把以前從庫的同步信息所有去掉
reset slave;
4: 而後指向主的第一個位置開始同步
change master to master_log_file='master-bin.000001',master_log_pos=4,master_user='replication',master_password='xxx', master_host='192.168.1.1';
5: 再開啓從應該就能夠了
start slave;
最後附上本人的網絡課堂地址,若有興趣請點擊: 實踐哥