首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 啟動失敗「No space left on device」三大案例與解決方案

     編輯:MySQL 資料庫相關知識

MySQL 無法啟動並報錯 Can't start server: can't create PID file: No space left on device,核心原因皆為磁碟空間耗盡。本文整理三個真實案例與通用排查步驟。

案例一:/var/log 日誌暴增佔滿 500G 硬碟

  • 現象:服務器所有網站異常,service mysqld start 超時,錯誤日誌顯示 PID 建立失敗。
  • 排查:df -h 發現磁碟使用率 100%,/var/log 目錄佔用 32G。
  • 解決:清理舊日誌檔案(或設定 logrotate 自動輪轉),釋放空間後 MySQL 正常啟動。

案例二:Tomcat catalina.out 單一檔案佔用 443G

  • 現象:網站無法存取,MySQL 掛掉無法啟動,同樣報 PID 空間不足。
  • 排查:df -h 顯示滿載,用 find /tmp -size +100000000c 找出大檔,發現 catalina.out 高達 443G。
  • 解決:rm -rf catalina.out 刪除後重啟 MySQL,建議同步重啟 OS 確保檔案控制釋放。

案例三:錯誤日誌直接指向磁碟滿載

120321 14:23:54 [ERROR] /usr/libexec/mysqld: Error writing file '/var/run/mysqld/mysqld.pid' (Errcode: 28)
120321 14:23:54 [ERROR] Can't start server: can't create PID file: No space left on device
  • 原因:Errcode 28 即 ENOSPC(裝置無剩餘空間)。
  • 解決:清理 /var/log 或其他佔用空間的目錄,騰出空間即可。

通用排查與預防清單

  1. df -h 確認哪個掛載點滿載。
  2. du -sh /* 或 find / -size +100M 定位大檔案/目錄。
  3. 清理對象優先序:舊備份、應用日誌、臨時檔、核心傾印。
  4. 部署 logrotate 管理所有服務日誌輪轉與壓縮。
  5. 設定磁碟使用率監控告警(如 80% 觸發通知)。
  6. 若為雲端磁碟,考慮擴容或掛載額外資料盤。

核心觀念:MySQL 啟動需寫入 PID 檔案,任何導致目標分區無可用空間的情況都會引發此錯誤。解決之道永遠是「釋放空間」而非調整 MySQL 參數。

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