/var/log/pacct文件导致MySQL启动失败的案例分享
毫无预兆的,MySQL罢工了。用mysql.server启动脚本启动之后,没有任何提示信息就结束,mysqld进程自然是没有起来。
把mysql.server里面$bindir/mysqld_safe--datadir=$datadir--pid-file=$server_pid_file>/dev/null2>&1这句的输出重定向去掉后运行,结果发现报错:Filesizelimitexceedednohup......
这样看来自然是有文件太大了。但查看了mysql数据目录下相关的数据库文件和日志文件,最大的也就几百兆。ulimit-a查看也没有对文件大小做任何限制。
经过N分钟的郁闷之后,决定用find/-size+2048000k查找整个硬盘上面的可疑文件。结果是:/var/log/pacct这个2G多的大文件冒了出来。很显然,这是SA激活了accton之后产生的日志文件,没给做回滚。二话不说,清空/var/log/pacct再启动一次MySQL,一切恢复正常!
搞不懂的是为什么mysql的启动脚本会受这样一个无关痛痒的进程统计日志的影响而导致mysqld进程完全无法启动。估计还是mysql.server/mysqld_safe脚本逻辑的问题。。