前言:因为磁盘满了,就直接把binlog都统统给删了(通常会留最后几个,因为直觉告诉我,都删了肯定有问题),今天没注意都给删了,然后起msyql时就起不来了。
一、问题原因
日志报错:找不到 mysql-bin.000075,类似这种日志文件。然后尝试touch了一个文件出来,给了权限,然后发现又报说无法获取到二进制信息。和明显自己touch的不好使啊,然后就上网找了下道友的解决办法。说是将mysql-bin.index这个文件里维护的信息删掉即可
因为mysql启动时会根据这个目录找最新的binlog日志,若是找不到或者找到了加载不了都会报错。
二、问题解决
删除mysql-bin.index中的内容即可,重新启动就ok了。
三、总结
解决binlog问题通过手动删除多余日志不是正确的方法,正确应该是将binlog的生效时间进行配置,若是测试环境完全可以将失效时间调的快一些,这样就不会有日志经常占满磁盘的情况了。生产的话不仅需要调binlog的失效时间,还需要增加磁盘才可以。
# 配置binlog失效时间为3天,也就是只保留最近3天的binlog日志 expire_logs_days = 3