突然遇到一例MySQL不能启动的毛病,故记录下来,相信看到标题的朋友已经猜到不能启动的原因了。服务器为Linux系统LNMP环境,突然出现不能访问故障,机器运行正常,能正常ssh登陆,所以马上登陆尝试重启LNMP,发现MySQL数据库无法停止(一直…..),停止后启动几秒就又死了!
各种查看,无意中发现硬盘空间使用100%,基本确定是磁盘满了导致的MySQL不能启动,因为这台VPS磁盘50GB,源码占用不到1G,所以命令查找大文件(find命令使用:前文回顾),找到大文件路径位于/usr/local/mysql/var/目录下,为MySQL日志binlog,大量以mysql-bin.*的文件,而且每个文件大小高达1GB。
如上图,按照这个进度,每天都能很快占满硬盘,所以需要先临时禁用日志,修改/etc/my.cnf 文件,找到下面两行注释掉:
***注释前请务必先停止MySQL*** /etc/init.d/mysql stop 然后在my.cnf注释下面两行(前面加#即可) log-bin=mysql-bin binlog_format=mixed 完成后重启MySQL /etc/init.d/mysql restart
接下来我们可以删掉全部或者部分mysql-bin.*文件,禁用了日志之后也不会生成更多新的日志文件,至于突然有这么多日志的原因,就需要慢慢检查了。
另外,我是直接删除mysql-bin.*文件,标准的做法应该是在MySQL下命令清理:
/usr/local/mysql/bin/mysql -u root -p reset master; ###注意命令包括分号