1. 程式人生 > >主從輔助無法同步問題解決(一)

主從輔助無法同步問題解決(一)

主從復制

問題:建立主從復制(單主單從M-S)後無法同步數據

這裏首先對單主單從M-S的操作步驟先做下簡要說明(具體操作略。。。)

一.環境準備;
二.master操作
1.開啟主服務器二進制日誌(並加入git選項);
2.在主服務器的MySQL上創建rep用戶,並用create和insert命令模擬在MySQL上加入數據;
3.通過mysqldump命令邏輯備份master上的二進制日誌,用scp命令發送給slave;
三.slave操作
1.驗證用戶rep是否能登錄,(如果登錄出現ssl無法通過問題,參考上篇博客,其實方法與本篇相同);
2.為避免slave上沒必要的二進制文件,在導入master二進制日誌時臨時關閉slave從服務器二進制日誌;

3.在MySQL中用source命令導入IO接收 的中繼日誌;
4.在slave中配置slave環境;
5.啟動slave服務;
(本篇問題所在步驟)
6.查看slave屬性;
7.在master中修改數據,在slave上驗證,如果能同步則說明主從完成同步。

在上述操作步驟中,在配置完slave後無法同步

無論在master上增刪改都無法同步至slave上
通過show slave status\G 命令查看後顯示slave_SQL_Running:No error 1007出現:

技術分享圖片

在/etc/my.cnf中加入一條命令就能解決這個錯誤: slave_skip_error=1007;
讓MySQL跳過這個錯誤;
技術分享圖片
然後systemcal restart mysqld,重啟mysqld;

以為現在可以同步了 但是再看slave屬性,還存在一個錯誤:error 1050,仍然不能同步數據;
技術分享圖片
同上面的操作一樣在/etc/my.cnf的配置文件中加入命令:slave_skip_error=1050;
技術分享圖片
然後systemcal restart mysqld,重啟mysqld;
這時候在看slave屬性:
技術分享圖片

錯誤沒有了,通過查詢看見數據已經可以同步了,

這時候再從/etc/my.cnf中註釋加入的兩行命令:
#slave_skip_error=1007;
#slave_skip_error=1050;
技術分享圖片
MySQL依然同步(筆者這裏的錯誤認為是2個簡單的小錯誤,不一定對所有error有效)。

總結:
在master生成日誌後,又存在一定的操作,使master中數據改動,在slave中導入中繼日誌後兩個數據庫的數據不一致,所以不能同步數據,在在配置文件中用skip跳過錯誤的之後,同步得意進行,slave自動從master上同步數據,工作得意正常進行。

(小白的第二篇,其實原理和第一篇大致相同)

主從輔助無法同步問題解決(一)