Mysql 无故crash

一入十二月,家里事多.

前几天看统计,无意间发现一个站点没有流量了,缸开始还以为是宕机了,吓我一跳,因为这个服务器上还有几个VM 跑着很重要的数据

查看了半天数据才发现原来是mysql 挂掉了

mysql 在这个VM上稳定了那么长时间,怎么会挂掉??查看了半天的err log,结果上面什么都没有

刚开始以为是innodb 的buffer 出现了问题,仔细查了查也没有问题。。。后来无意间才发现是磁盘满了。。。因为在这台VM上,我单独给mysql 添加了一块SSD硬盘,但是因为数据库读写过于频繁,mysql-bin的日志把整个硬盘都占满了。。。。

解决办法:

肯定就是删除mysql-bin.00XX文件了,但是网上都说不要直接删除,会对mysql-bin.index有损害. 但是目前mysql无法启动,也无法使用purge 来删除mysql-bin

其实解决问题很简单,首先删除mysql-bin.00001 和mysql-bin.00002, 然后打开mysql-bin.index把相应的文件名删掉就可以了,其实就是相当于手动的编辑mysql-bin.index, 和purge 的过程一样

删除一两个mysql-bin以后,就可以正常启动mysql,然后直接flush logs, reset master 就可以了,这样就会删除全部的mysql-bin,然后重新建立mysql-bin.index

最后编辑一些/etc/my.cnf, 把bin-log的失效日期改为3天就可以了