首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 服務啟動報錯完整排查與解決方案

     編輯:MySQL 綜合教學

問題背景

在 Red Hat 6 環境下運行 MySQL 5.6 時,嘗試啟動服務報錯。本文記錄從現象觀察、根因定位、解決步驟到知識擴展的完整過程,幫助讀者快速定位同類問題。

現象觀察

執行 service mysql start 後報錯,提示找不到進程;但執行 ps -ef | grep mysql 卻能看到 MySQL 進程存在。同時 /var/lib/mysql 目錄下缺少 mysql.sock 文件,說明服務實際未正常運行。

報錯截圖

排查步驟

1. 檢查目錄權限

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

目錄權限

2. 確認進程狀態

雖然有殘留進程,但無 sock 文件生成,說明進程處於異常狀態。需強制終止殘留進程:

ps -ef | grep mysql
kill -9 

進程列表

3. 重新啟動服務

殺掉進程後執行 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 命令詳解

  • chkconfig --list:查看所有服務各運行級別狀態
  • chkconfig --list mysql:查看 MySQL 具體級別
  • 運行級別:0 停機、1 單用戶、2 無網絡多用戶、3 字符界面多用戶、4 保留、5 圖形界面、6 重啟

chkconfig 列表

關閉 MySQL 開機自啟

chkconfig --level 2345 mysql off

也可通過 /var/log/boot.log 查看啟動日誌確認服務啟動順序:

cat /var/log/boot.log

boot.log

總結

  1. 啟動報錯先查權限、再查進程、最後查 sock 文件
  2. 殘留進程需 kill -9 強制清理
  3. 注意版本差異:5.6 服務名 mysql,5.7+ 為 mysqld
  4. 生產環境建議關閉開機自啟,改由監控系統管理,避免重複啟動
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved