有時(shí)候Mysql突然崩潰導(dǎo)致網(wǎng)站訪問不了,,當(dāng)重新啟動的mysql提示報(bào)錯(cuò):The server quit without updating PID file,,現(xiàn)在大體分析總結(jié)以下9種故障原因及解決辦法:
1,、磁盤空間滿了,,因?yàn)槿罩净蛘呔W(wǎng)站緩存等原因?qū)е麓疟P空間寫滿,,硬盤使用率達(dá)100%,,Mysql無法工作,,崩潰罷工,,這時(shí)要么刪除日志緩存文件或者擴(kuò)容硬盤。
解決方法:先用df命令查看硬盤空間,,確認(rèn)為此類問題,,找到占用比較大的文件用echo命令直接寫空清除文件內(nèi)容,然后重啟mysql
一般命令:df ,du ,echo,service mysql restart,,即可,。
2、可能是/usr/local/mysql/data/mysql.pid文件(根據(jù)自己服務(wù)器配置)沒有寫的權(quán)限
解決方法 :給予權(quán)限,執(zhí)行 “chown -R mysql:mysql /var/data” “chmod -R 755 /usr/local/mysql/data” 然后重新啟動mysqld!
3,、可能進(jìn)程里已經(jīng)存在mysql進(jìn)程(往往是mysql非常正常退出導(dǎo)致的)
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進(jìn)程,,如果有使用“kill -9 進(jìn)程號”殺死,然后重新啟動mysqld!
4,、可能是在機(jī)器上二次安裝了mysql或者升級mysql版本操作有殘余數(shù)據(jù)影響了服務(wù)的啟動,。
解決方法:去mysql的數(shù)據(jù)目錄/data看看,如果存在mysql-bin.index,,就趕快把它刪除掉吧,,它就是罪魁禍?zhǔn)琢恕1救司褪鞘褂玫谌龡l方法解決的 !
5,、mysql在啟動時(shí)沒有指定配置文件時(shí)會使用/etc/my.cnf配置文件,,請打開這個(gè)文件查看在[mysqld]節(jié)下有沒有指定數(shù)據(jù)目錄(datadir)。
解決方法:請?jiān)赱mysqld]下設(shè)置這一行:datadir = /usr/local/mysql/data
6,、skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated字段,,如果有就立即注釋掉吧。
7,、錯(cuò)誤日志目錄不存在
解決方法:使用“chown” “chmod”命令賦予mysql所有者及權(quán)限
8,、selinux惹的禍,如果是centos系統(tǒng),,通常都是會開啟selinux
解決方法:關(guān)閉它,,打開/etc/selinux/config,把SELINUX=enforcing改為SELINUX=disabled后存盤退出重啟機(jī)器試試,。
9,、非正常原因服務(wù)器重啟或者數(shù)據(jù)寫入導(dǎo)致mysql崩潰,,innodb引擎損壞需要修復(fù),,
解決方法:在mysql的配置文件my.cnf里找到 [mysqld]字段下,添加 innodb_force_recovery=1:然后重啟mysql,,重啟成功,。然后使用mysqldump或 pma 導(dǎo)出數(shù)據(jù),執(zhí)行修復(fù)操作等,。修復(fù)完成后,,務(wù)必要把該參數(shù)注釋掉,還原默認(rèn)值0,,不然數(shù)據(jù)庫讀寫會出錯(cuò),。
友情提醒:大家在遇到mysql問題時(shí),務(wù)必第一時(shí)間分析查看錯(cuò)誤日志,,很多問題都可以在日志里反應(yīng)來,。