MySQL主從不同步問題解決

    這篇文章主要記錄一次服務器異常關機導致的,MySQL主從不同步的異常情況處理。
          因機房進行搬遷,機房人員在未通過系統關機的情況下,強行斷電關機,導致數據庫主從出現不同步的情況,並出現數據不同步的情況。

        **  對於不同步的處理方式:**
            Mysql主從不同步主要在從機上執行show slave status\G主要查看以下兩個參數

Slave_IO_Running: Yes
Slave_SQL_Running: Yes
兩個參數必須都是yes才爲同步成功。接下來分析下那個參數爲no的情況
1、Slave_IO_Running: NO的情況分析
1)首先檢查主從的server_id、server_uuid是否重複,具體是主從機器上都執行以下命令
show variables like 'server_id';
show variables like 'server_uuid';
如果server_id一樣就修改my.cnf文件重新配置server_id,修改後重啓mysql服務。
如果server_uuid一樣就修改mysql data 目錄下auto.cnf 文件中uuid的值,使兩臺mysql不同即可,修改後重啓mysql服務。
2)如果是自己搭建虛擬機環境克隆主機小心server_uuid會是一樣的。
接着檢查主機的網絡是否通暢。具體可以使用ping ip;測試通信。
3)查看master_log_file,master_log_pos兩個參數是否和slave同步。
如果不同步了就重新執行下
stop slave;
change master to master_host='172.16.1.101',master_log_file='mysql-bin.000001',master_log_pos=120;
start slave;

以上情況都不是就查看slave機器的日誌文件。

2、Slave_SQL_Running: No
解決:首先登錄從機mysql –uroot -h 127.0.0.1執行以下命令
stop slave;
set global sql_slave_skip_counter =1;
start slave;
注:如果錯誤過多,可以在my.cnf中添加slave-skip-errors=all

3、2個參數都爲NO
檢查連接的mysql主機是否正常連接。

3、ERROR 1872 (HY000): Slave failed to initialize relay log info structure from the repository
做從機的時候relay_log地址配有配置。

對於數據不同步的情況,因只有一個庫文件存在不同步的情況,並且該庫不太常用,我的處理辦法比較極端,直接將從庫數據文件刪除,從主庫重新複製到從庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章