在 Red Hat 6 環境下運行 MySQL 5.6 時,嘗試啟動服務報錯。本文記錄從現象觀察、根因定位、解決步驟到知識擴展的完整過程,幫助讀者快速定位同類問題。
執行 service mysql start 後報錯,提示找不到進程;但執行 ps -ef | grep mysql 卻能看到 MySQL 進程存在。同時 /var/lib/mysql 目錄下缺少 mysql.sock 文件,說明服務實際未正常運行。

首先懷疑 /var/lib/mysql 權限問題。查看發現目錄屬主為 mysql:mysql,且擁有寫入權限,排除權限故障。

雖然有殘留進程,但無 sock 文件生成,說明進程處於異常狀態。需強制終止殘留進程:
ps -ef | grep mysql
kill -9

殺掉進程後執行 service mysql start(注意:MySQL 5.6 用 mysql,5.7+ 用 mysqld)。啟動成功後 /var/lib/mysql 下出現 mysql.sock,服務恢復正常。

問題源於重複啟動服務:系統啟動時 MySQL 已自動啟動(chkconfig 設定),人為再次執行 service mysql start 導致進程衝突。MySQL 5.6 預設開機自啟,而 5.7 預設關閉,這差異導致操作習慣不一致引發故障。

chkconfig --list:查看所有服務各運行級別狀態chkconfig --list mysql:查看 MySQL 具體級別
chkconfig --level 2345 mysql off
也可通過 /var/log/boot.log 查看啟動日誌確認服務啟動順序:
cat /var/log/boot.log

kill -9 強制清理mysql,5.7+ 為 mysqld