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

Linux 下 MySQL 啟動失敗「MySQL Daemon failed to start」完整排查與解決方案

     編輯:MySQL 綜合教學

在 CentOS 等 Linux 伺服器環境中,MySQL 服務無法啟動並報錯 MySQL Daemon failed to start 是常見的運維難題。本文記錄一次實際故障的完整排查過程,幫助你快速定位並解決問題。

故障現象

網站突然無法連接資料庫,重啟伺服器後嘗試啟動 MySQL 服務:

# /etc/init.d/mysqld start
MySQL Daemon failed to start.
Starting mysqld: [FAILED]

核心排查步驟

1. 查看錯誤日誌

首先檢查 /var/log/mysqld.log,關鍵錯誤如下:

/usr/libexec/mysqld: Can't change dir to '/xxx' (Errcode: 13)
[ERROR] Aborting

錯誤代碼 Errcode: 13 代表權限被拒絕,但檢查資料目錄與日誌目錄的擁有者、權限均正常。

2. 確認 SELinux 狀態

執行 getenforce 發現輸出為 Enforcing,說明 SELinux 正處於強制模式,這很可能是導致 MySQL 無法切換目錄的根本原因。

解決方案

方法一:臨時關閉 SELinux(立即生效,重啟失效)

# setenforce 0

方法二:永久關閉 SELinux(需重啟生效)

編輯 /etc/selinux/config,將 SELINUX=enforcing 改為 SELINUX=disabled,然後重啟伺服器。

方法三:針對性放行 FTP 相關布林值(若涉及 FTP 數據目錄)

setsebool ftpd_disable_trans 1

驗證與建議

關閉 SELinux 後重新啟動 MySQL,服務應能正常啟動。生產環境建議採用 方法二 永久關閉,或配置 SELinux 策略允許 MySQL 存取特定目錄,兼顧安全與可用性。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved