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