MySQL 無預警無法啟動。使用 mysql.server 腳本啟動後無任何提示直接結束,mysqld 進程未建立。移除腳本中的輸出重導向後發現錯誤:
File size limit exceeded
ulimit -a 查看無檔案大小限制。find / -size +2048000k 發現 /var/log/pacct 達 2 GB+。/var/log/pacct 是 accton 進程記贏系統產生的日誌,記錄所有命令執行資訊。系統管理員啟用後未配置日誌輪轉,導致檔案無限增長。MySQL 啟動腳本 mysqld_safe 在某些邏輯中會受單一巨大檔案影響(可能透過 ulimit 繼承或檔案系統配額),導致 File size limit exceeded 錯誤中斷啟動。
# 清空巨大檔案 > /var/log/pacct # 或 truncate -s 0 /var/log/pacct # 重新啟動 MySQL /etc/init.d/mysql.server start
服務即刻恢復正常。
logrotate 定期輪轉 /var/log/pacct。accton 服務。MySQL 官方啟動腳本 mysqld_safe 應增加對極端檔案大小情況的容錯處理,避免無關日誌檔案導致資料庫服務不可用。
看似無關的系統級日誌檔案過大,竟能阻斷 MySQL 啟動。運維需建立「全盤大檔掃描」與「關鍵服務啟動依賴分析」機制,快速定位此類隱性故障。