因为mysql会自动生成binary log文件,而且非常大,久而久之,对于小主机可能就不够用,尤其是小网站,加硬盘虽然能解决,但是也不是根本解决的办法,于是就使用命令来每隔一段时间删除一些log文件。
设置定时删除binary log文件
首先登陆你的mysql root用户
mysql -u root -p
然后设置定时删除log文件
mysql> SET GLOBAL binlog_expire_logs_seconds = 43200;
后面的数字是秒,也就是说43200是半天,12个小时就删除一次,mysql8.0以前这里是设置天,不是秒。
这样的话你的系统就会每隔12个小时删除一次binary log文件了。
File ‘./binlog.000141’ not found错误
最近发现网站开启有些慢,查看一下主机,发现只有几G空间,不是不想升级主机,最近主机商中间一大段的配置都没有了,直接要求从32元/月到335元/月,于是就想手动删除log文件,以前也这样操作过,binary log文件都保存在这个文件夹/var/lib/mysql,一不小心全删除了,结果数据库都启动不了,网站自然也打不开。
问过chatgpt,给的方法没用,还是google,最终找到了解决办法。
解决办法
打开/var/lib/mysql/binlog.index,编辑此文件,记得先备份此文件,把文件中binlog.000141这一行删除,哪一行出问题,删除哪一行,我建议删除里面所有的数据,然后保存,重启mysql
systemctl restart mysql
写此文以做记录,数据很重要,别随便乱删除!