毫無預兆的,MySQL 罷工了。 用 mysql.server 啟動腳本啟動之後,沒有任何提示信息就結束,mysqld進程自然是沒有起來。
把 mysql.server 裡面 $bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file >/dev/null 2>&1 這句的輸出重定向去掉後運行,結果發現報錯: File size limit exceedednohup ... ...
這樣看來自然是有文件太大了。但查看了 mysql 數據目錄下相關的數據庫文件和日志文件,最大的也就幾百兆。 ulimit -a 查看也沒有對文件大小做任何限制。
經過 N 分鐘的郁悶之後,決定用 find / -size +2048000k 查找整個硬盤上面的可疑文件。結果是: /var/log/pacct 這個2G多的大文件冒了出來。很顯然,這是 SA 激活了 accton 之後產生的日志文件,沒給做回滾。二話不說,清空 /var/log/pacct 再啟動一次 MySQL ,一切恢復正常!
搞不懂的是為什麼 mysql 的啟動腳本會受這樣一個無關痛癢的進程統計日志的影響而導致 mysqld 進程完全無法啟動。估計還是 mysql.server / mysqld_safe 腳本邏輯的問題。。