關於修改mysql從庫主機名致使主從同步失敗

若是修改了從庫的主機名,而從庫又忘了作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;

 

最後附上本人的網絡課堂地址,若有興趣請點擊: 實踐哥

相關文章
相關標籤/搜索