標籤:MySQL 主從同步 IO_error SQL_error
資料庫主從同步的時候有兩個線程:IO線程和SQL線程。常見的報錯時圍繞這兩個線程出現的。
IO線程:把主庫binlog日誌的內容記錄到原生中繼記錄檔裡。
IO線程報錯的原因有兩個,第一是指定主庫資訊時參數資訊有誤;第二時安全限制(包括firewall,selinux)。
查看報錯原因:
mysql> show slave status\G
……
Last_IO_error:報錯提示
……
常見錯誤提示:error connecting to master ‘[email protected]:3306‘ - retry-time: 60 retries:1
報錯提示在從資料庫伺服器上指定主庫資訊參數時有誤,通常是與主庫授權時的使用者或密碼不一致造成的
另外,如果是指定主庫資訊時參數有誤的話,可以查看資料庫目錄下的記錄串連主庫資訊的檔案master.info
[[email protected]]# cat /var/lib/mysql/master.info
>這裡的參數就是指定主庫資訊時設定的參數
附指定主庫資訊時的命令及樣本
mysql> change master to
-> master_host="ip地址",
-> master_user="授權時指定的使用者名稱",
-> master_password="使用者密碼",
-> master_log_file="binlog日誌",
-> master_log_pos=位移量;
修複IO線程:
mysql> stop slave;
mysql> change master to 選項=值;
mysql> start slave;
SQL線程:執行本機中繼記錄檔裡的SQL命令,把資料寫進本機資料庫裡
SQL線程出錯原因:一般時執行中繼記錄檔裡sql命令用到的庫或表在本機不存在
修複SQL線程:
查看 本機和主要資料庫伺服器中的庫和表,使本機有主要資料庫伺服器中的庫或表。
先停止slave服務,晚上庫或表之後再啟動slave服務
mysql> stop slave;
修改
mysql> start slave;
MySQL主從同步常見報錯的解決辦法