一次詭異的MySQL問題處理故事

xuexiaogang發表於2021-12-13

自己原文公眾號: https://mp.weixin.qq.com/s/JF7e8d13BzNPo3BmLunaTA

某天一個開發在網上找我說他的應用連不上資料庫了。我問他什麼現象,他反饋說tomcat那裡顯示報錯,無法連線資料庫(這是翻譯成中文的)原文不貼了。


我當時第一反應是去驗證一下,讓其他人去連一下資料庫。讓開發去telnet一下資料庫。


結果是開發說telnet不通,其他人說資料庫可以連線。


見鬼啊,這個應用看IP和資料庫是同網段,不應該有防火牆的限制。但是的的確確不通。


那資料庫這裡有人反饋可以連線,還是我自己去看看吧。看看執行狀態。如下圖:

看上去資料庫沒有啟動。有點奇怪。那麼我們重啟一下資料庫,先解決問題再說。即使是正式環境也是這樣。重啟命令過後還是這樣。


開發反映不通,運維反應資料庫可以連線。


不得不說有點沒方向,看了一下伺服器執行了快1000天,難道說Linux的問題?不過我見過十幾年沒重啟的也能用。


艱難的建議他決定重啟伺服器吧。先試試。伺服器馬上啟動好了。


ps 一下資料庫程式。這次徹底涼了,連上圖的失敗資訊都沒有了。畢竟正式環境,瞬間壓力來了。畢竟這個是我建議他做的。


看看配置檔案吧,難道說找不到資料目錄,資料庫應該是和作業系統的後臺一起啟動的。沒啟動一定是什麼配置失敗了。


find / -name my.cnf    結果是沒有。驚呆了,不管是什麼版本,不管是什麼路徑這個引數名字是一定的。我全盤都沒找到,難怪起不來了。這就是問題,資料庫的引數檔案沒有了,為什麼?怎麼辦?這種也是第一次遇到。安靜幾秒,在預設路徑再找找,看看有什麼發現。


這次讓他們找到了一個my.cnf.rpmsave,眼前一亮。從名字看是RPM+SAVE作為字尾。這個我知道,一般是在一個已經有資料庫伺服器上再次rpm安裝這樣之前的配置檔案就被改成這個了。但是一般這樣的情況下,會有一個 my.cnf。現在奇怪的是沒有。既然知道這個了,那我先改名字,保證能重啟。


一切意料之中,一次啟動成功,運維表示可能連線使用。開發這個時候也查到了,就是網路問題。他用另外一個應用伺服器telnet資料庫埠可以,他原來的應用伺服器telnet資料庫埠不行。


故障解決了,問題也知道了。也不知道是誰當年留的坑,只是這個機器一直沒重啟,一旦重啟就是問題。而誰在執行過程中又安裝了一次資料庫,而且引數檔案不見了,就不得而知了。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/637517/viewspace-2847519/,如需轉載,請註明出處,否則將追究法律責任。

相關文章