收到大量郵件報警想必事出有因,就問同事到底發生了什麼?同事登陸從庫查看,發現出現以下報錯提示,表示與主庫同步失敗,一直卡在哪裏,看他弄了兩個多小時,問題愈來愈多,解決一個恢復平靜了一兩分鐘又不行了。。。。因而報警的郵件又是一封又一份。。。因而向我求助。登陸從庫後發現:mysql
其中一臺從庫報錯內容爲:sql
1 mysql> show slave status\G; 2 3 Slave_IO_Running: Yes 4 Slave_SQL_Running: No 5 6 Last_Errno: 1008 7 8 Last_Error: Error 'Can't drop database 'lcp'; database doesn't exist' on query. Default database: 'lcp'. Query: 'drop database lcp'
建立庫失敗,服務器
查看日誌app
1 mysql> SHOW GLOBAL VARIABLES LIKE '%log%'; 2 3 | log_error | /application/mysql/data/db03.err 日誌路徑並無動,默認 4 5 | log_warnings | 1 還好啓用日誌了。。。
切一個窗口查看日誌:運維
發現錯誤報告,不能與主庫同步,上一條報告lcp庫已存在。。納悶你拿我名字當庫名幹啥。。。狠批一頓。(後來得知是以爲我名字有威懾力,嚇唬嚇唬服務器,笑哭...)spa
言歸正傳指針
我看了一下他的歷史操做記錄,想建立「lcp」庫卻發現此庫已存在,想刪掉「lcp」庫,卻發現系統報錯此庫不存在。而後我就很鬱悶的問他你到底對服務器作了啥!!!rest
真是不怕沒腦子的隊友,,就怕。。。。哈哈,固然開個玩笑,排錯也是成長的過程,我很喜歡我這個隊友,他常常給我提供成長的空間。(Ps:不要輕易模仿!!尤爲是生產環境!!!)日誌
1 160524 10:53:41 [Warning] Slave: Can't create database 'min'; database exists Error_code: 1007 2 160524 10:53:41 [ERROR] Error running query, slave SQL thread aborted. Fix the problem, and restart the slave SQL thread with "SLAVE START". We stopped at log 'mysql-b 3 in.000758' position 1077 4 160524 11:53:17 [ERROR] Error reading packet from server: Lost connection to MySQL server during query ( server_errno=2013)
因而我繼續往上翻錯誤日誌,發現一條相似的提示:min庫已存在,沒法完成建立。當時彷佛想到了什麼。就問了一句,你是否是在兩臺mysql服務器上同時建立了min庫?豬同樣的隊友給個人回答居然是:「是!」!!!!!好吧原諒他是新手。既然問題找到了方法天然就簡單了,還好是其中一臺從庫,不會形成很大的影響,因而選擇最簡單的辦法:code
mysql> slave stop;
Query OK, 0 rows affected (0.01 sec)
mysql> set GLOBAL SQL_SLAVE_SKIP_COUNTER=1;
Query OK, 0 rows affected (0.00 sec)
mysql> slave start;
Query OK, 0 rows affected (0.00 sec)
mysql> show slave status\G;
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 0
至此解決完成,雖然用了規避的方法去解決有點不太光明磊落(1007能夠忽略),可是排錯思路必定要清晰,雖然說不是生產環境,若是要是生產環境超出5分鐘的排措時間都不是一個合格的運維人應該作的事情,此處發一篇博文也給本身存個檔,順便幫助一下須要的人。