mysql-5.6.20主從同步錯誤之Error_code: 1062 Duplicate entry '1' for key 'PRIMARY', Error_code: 1062
阿新 • • 發佈:2020-11-27
1.接到mysql主從不同步的報警,看日誌
Relay_Master_Log_File: mysql-bin.000119 Slave_IO_Running: Yes Slave_SQL_Running: No Replicate_Do_DB: Replicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table: Last_Errno:1062 Last_Error: Could not execute Write_rows event on table bbh_159.log_process; Duplicate entry '1' for key 'PRIMARY', Error_code: 1062; handler error HA_ERR_FOUND_DUPP_KEY; the event's master log mysql-bin.000119, end_log_pos 764433484
2.檢視錯誤碼Last_Errno: 1062資訊
出現的可能原因: 1.程式可能在slave上進行了寫操作2.也可能是slave機器重起後,事務回滾造成的.
3.定位原因:
1.程式可能在slave上進行了寫操作 程式在修改程式碼邏輯時,誤將資料寫入從庫了
4.解決問題
1.登陸從庫:mysql -h127.0.0.1 -uroot -P3307 -pxxxx 2.檢視從庫同步情況:mysql> show slave status\G; 3.關閉從庫 4.修改my.cnf 加入 slave-skip-errors = 1062 【slave-skip-errors為只讀引數,不支援線上更改】
5.啟動從庫 6.驗證同步情況
6.問題總結
1.從庫只能做讀操作,不能寫操作。 2.使用從庫時,應建立只讀普通使用者,避免執行寫操作。3.開啟只讀模式,配置檔案加入read-only = 1 ,但還需建立只讀普通使用者,因為只讀模式對超級使用者沒有限制。