一、概述
文章主要介紹因?yàn)閱?dòng)mysql服務(wù)報(bào)錯(cuò)引發(fā)的問題:"ERROR! The server quit without updating PID file (/var/lib/mysql/localhost.localdomain.pid)",順帶擴(kuò)充一些其它的知識(shí)點(diǎn),當(dāng)前版本是red hat 6,mysql 5.6。
二、步驟
報(bào)錯(cuò)的源頭
問題解決
1.權(quán)限
報(bào)錯(cuò)的源頭就是它了,一般這種問題首先會(huì)想到的就是權(quán)限問題,就是/var/lib/mysql該文件夾的權(quán)限
上圖可以看到mysql文件夾的用戶和組都是mysql且mysql有寫的權(quán)限,所以權(quán)限沒有問題。
2.進(jìn)程
查看/var/lib/mysql目錄,發(fā)現(xiàn)沒有生存mysql.sock文件,說明mysql沒有啟動(dòng),也可以登入mysql來測(cè)試
查看進(jìn)程ps -ef|grep mysql
發(fā)現(xiàn)存在mysql進(jìn)程,原因就是它了,kill掉,kill -9 pid
再啟動(dòng)mysql服務(wù),service mysql start,我當(dāng)前的mysql版本是5.6,在5.7版本啟動(dòng)服務(wù)是service mysqld start,稍微有點(diǎn)差別。
查看mysql目錄,發(fā)現(xiàn)mysql.sock文件生成了
問題分析
還記得一開始的那個(gè)報(bào)錯(cuò)嗎?
明明已經(jīng)存在mysql進(jìn)程的但是為什么stop mysql服務(wù)提示找不到進(jìn)程,主要的原因還是進(jìn)程里面存儲(chǔ)mysql的異進(jìn)程,解決方法就是按照上面的kill掉這些進(jìn)程,為什么會(huì)產(chǎn)生這種進(jìn)程呢?我這里是我自己的操作失誤,服務(wù)器啟動(dòng)的時(shí)候mysql自動(dòng)已經(jīng)啟動(dòng)了,然后我還執(zhí)行了一次service mysql start,導(dǎo)致了這個(gè)問題,這也是問題的由來,網(wǎng)上有很多文章是針對(duì)這個(gè)的解決方法但并沒有找出問題的由來,可能還會(huì)有其它原因?qū)е逻@個(gè)問題,但是我這里就是因?yàn)槲抑貜?fù)啟動(dòng)了服務(wù),因?yàn)閙ysql5.7版本中mysql服務(wù)沒有自動(dòng)重啟所以我經(jīng)常會(huì)有重啟服務(wù)的習(xí)慣,但是在5.6版本mysql就是隨著系統(tǒng)自動(dòng)啟動(dòng)所以就無需再重啟服務(wù)了。
系統(tǒng)自動(dòng)重啟服務(wù)
chkconfig命令
使用chkconfig命令查詢服務(wù)的重啟情況,命令:chkconfig --list servername,也可以單獨(dú)chkconfig --list查看所有
[0-6]分別代表linux系統(tǒng)的運(yùn)行方式,0:停機(jī),1:?jiǎn)斡脩裟J剑?:不帶網(wǎng)絡(luò)的多用戶,3:不帶圖形界面的多用戶,4:沒有使用,5:帶圖形界面的模式x11也就是經(jīng)常看到linux桌面(默認(rèn)級(jí)別),6:重啟
可以使用chkconfig --level 級(jí)別 服務(wù)名 on/off方式來關(guān)閉和啟動(dòng)服務(wù)
例如我們關(guān)閉mysql在linux2,3,4,5運(yùn)行級(jí)別的自動(dòng)啟動(dòng),
chkconfig --level 2345 mysql off
這里有一篇關(guān)于自動(dòng)啟動(dòng)服務(wù)的文章總結(jié)的很好:Linux如何設(shè)置服務(wù)自啟動(dòng)
查看boot.log 日志
命令:cat /var/log/boot.log
boot.log記錄了啟動(dòng)項(xiàng)的日志信息。
文章主要是寫自己遇到問題發(fā)現(xiàn)問題找到問題的方法,順便擴(kuò)充了一些系統(tǒng)自動(dòng)啟動(dòng)的信息,希望對(duì)大家的學(xué)習(xí)有所幫助。