Mysql DBA 高級運維學習筆記-MySQL主從復制故障解決
Show slave status報錯
且show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: NO
Seconds_Behind_Master: NULL
Last_Error:Error ‘Can’t create database ‘linzhongniao’;database exists’on query.
Default database:’linzhongniao’.Query:‘create database linzhongniao’
解決方法:
方法一:
Stop slave Set global sql_slave_skip_counter=1 Start slave
(1)對於普通的互聯網業務,忽略問題不是很大,當然要確認不影響公司業務的前提下。
(2)企業場景解決主從同步,比主從不一致對當前業務更重要。如果主從數據一致很重要找個時間恢復一下這個從庫。
方法二:根據錯誤號跳過指定的錯誤
[root@mysql ~]# grep skip /data/3306/my.cnf
skip-name-resolve 忽略名稱解析解決mysql連接慢的問題。
slave-skip-errors = 1032,1062 一般由於入庫重復導致的失敗就可以忽略。
當然也可以將slave-skip-errors的值設置為all,這樣就會導致主從庫數據同步數據缺失。我們可以參考mysql常見錯誤代碼來設置我們想要忽略的錯誤號,還可以通過錯誤號解決mysql出現故障。
mysql常見錯誤代碼:
1005:創建表失敗
1006:創建數據庫失敗
1007:數據庫已存在,創建數據庫失敗<=================可以忽略
1008:數據庫不存在,刪除數據庫失敗<=================可以忽略
1009:不能刪除數據庫文件導致刪除數據庫失敗
1010:不能刪除數據目錄導致刪除數據庫失敗
1011:刪除數據庫文件失敗
1012:不能讀取系統表中的記錄
1020:記錄已被其他用戶修改
1021:硬盤剩余空間不足,請加大硬盤可用空間
1022:關鍵字重復,更改記錄失敗
1023:關閉時發生錯誤
1024:讀文件錯誤
1025:更改名字時發生錯誤
1026:寫文件錯誤
1032:記錄不存在<=============================可以忽略
1036:數據表是只讀的,不能對它進行修改
1037:系統內存不足,請重啟數據庫或重啟服務器
1038:用於排序的內存不足,請增大排序緩沖區
1040:已到達數據庫的最大連接數,請加大數據庫可用連接數
1041:系統內存不足
1042:無效的主機名
1043:無效連接
1044:當前用戶沒有訪問數據庫的權限
1045:不能連接數據庫,用戶名或密碼錯誤
1048:字段不能為空
1049:數據庫不存在
1050:數據表已存在
1051:數據表不存在
1054:字段不存在
1062:字段值重復,入庫失敗<==========================可以忽略
1065:無效的SQL語句,SQL語句為空
1081:不能建立Socket連接
1114:數據表已滿,不能容納任何記錄
1116:打開的數據表太多
1129:數據庫出現異常,請重啟數據庫
1130:連接數據庫失敗,沒有連接數據庫的權限
1133:數據庫用戶不存在
1141:當前用戶無權訪問數據庫
1142:當前用戶無權訪問數據表
1143:當前用戶無權訪問數據表中的字段
1146:數據表不存在
1147:未定義用戶對數據表的訪問權限
1149:SQL語句語法錯誤
1158:網絡錯誤,出現讀錯誤,請檢查網絡連接狀況
1159:網絡錯誤,讀超時,請檢查網絡連接狀況
1160:網絡錯誤,出現寫錯誤,請檢查網絡連接狀況
1161:網絡錯誤,寫超時,請檢查網絡連接狀況
1169:字段值重復,更新記錄失敗
1177:打開數據表失敗
1180:提交事務失敗
1181:回滾事務失敗
1203:當前用戶和數據庫建立的連接已到達數據庫的最大連接數,請增大可用的數據庫連接數或重啟數據庫
1205:加鎖超時
1211:當前用戶沒有創建用戶的權限
1216:外鍵約束檢查失敗,更新子表記錄失敗
1217:外鍵約束檢查失敗,刪除或修改主表記錄失敗
1226:當前用戶使用的資源已超過所允許的資源,請重啟數據庫或重啟服務器
1227:權限不足,您無權進行此操作
1235:MySQL版本過低,不具有本功能
Mysql DBA 高級運維學習筆記-MySQL主從復制故障解決