有時候Mysql突然崩潰導(dǎo)致網(wǎng)站訪問不了,,當(dāng)重新啟動的mysql提示報錯:The server quit without updating PID file,現(xiàn)在大體分析總結(jié)以下9種故障原因及解決辦法:
1,、磁盤空間滿了,因為日志或者網(wǎng)站緩存等原因?qū)е麓疟P空間寫滿,,硬盤使用率達100%,,Mysql無法工作,崩潰罷工,,這時要么刪除日志緩存文件或者擴容硬盤,。
解決方法:先用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īng)存在mysql進程(往往是mysql非常正常退出導(dǎo)致的)
解決方法:用命令“ps -ef|grep mysqld”查看是否有mysqld進程,,如果有使用“kill -9 進程號”殺死,,然后重新啟動mysqld!
4、可能是在機器上二次安裝了mysql或者升級mysql版本操作有殘余數(shù)據(jù)影響了服務(wù)的啟動,。
解決方法:去mysql的數(shù)據(jù)目錄/data看看,,如果存在mysql-bin.index,就趕快把它刪除掉吧,,它就是罪魁禍?zhǔn)琢?。本人就是使用第三條方法解決的 !
5、mysql在啟動時沒有指定配置文件時會使用/etc/my.cnf配置文件,,請打開這個文件查看在[mysqld]節(jié)下有沒有指定數(shù)據(jù)目錄(datadir),。
解決方法:請在[mysqld]下設(shè)置這一行:datadir = /usr/local/mysql/data
6、skip-federated字段問題
解決方法:檢查一下/etc/my.cnf文件中有沒有沒被注釋掉的skip-federated字段,,如果有就立即注釋掉吧,。
7、錯誤日志目錄不存在
解決方法:使用“chown” “chmod”命令賦予mysql所有者及權(quán)限
8,、selinux惹的禍,,如果是centos系統(tǒng),通常都是會開啟selinux
解決方法:關(guān)閉它,,打開/etc/selinux/config,,把SELINUX=enforcing改為SELINUX=disabled后存盤退出重啟機器試試。
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ù)庫讀寫會出錯。
友情提醒:大家在遇到mysql問題時,,務(wù)必第一時間分析查看錯誤日志,,很多問題都可以在日志里反應(yīng)來。