MySQL关闭/定期自动清理/手动清理 binlog 日志文件
一、写在前面
相信很多人一般都是使用各种一键安装包(如:OneinStack、宝塔、WDCP等)来搭建网站运行环境,这些一键包所安装的MySQL大多默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在数据库目录下面产生mysql-bin.000001--00000x的文件,而且一般都在几十MB到几个GB,更甚会占用整个硬盘空间,从而导致mysql无法启动或报错。
PS:博主曾经也是没有关这个,binlog日志一度涨到20G多,哈哈哈哈,嗝。
提示:任何数据操作有风险,请提前做好备份,如数据异常,请自行负责。
常见web环境安装包:
Linux:
Win:
本文主要以linux环境为例说明,windows环境下修改方法基本一致。
二、关闭mysql的binlog日志
1、在命令行下登录mysql服务
这里博主测试环境使用的是OneinStack,mysql的安装路径是在/usr/local/mysql,其他环境请自行查找路径并替换为你的
执行以下命令(以mysql超级用户root登录):
/usr/local/mysql/bin/mysql -u root -p
登录成功如图
2、重置清空日志
输入执行命令:reset master;
如图则表示已经清空,binlog日志文件也变成mysql-bin.000001了
3、修改mysql配置文件
文件位置:/etc/my.cnf (同理,其他环境路径请自行查找修改)
找到
log-bin=mysql-bin
binlog_format=mixed
注释这两行,在前面加上#号,最后重启mysql即可
三、手动清理binlog
登录mysql服务后,执行命令:
或者使用清空命令:reset master; 清空全部日志
四、定期自动清理binlog(建议)
修改配置文件/etc/my.cnf,设置expire_logs_days,并重启mysql服务
如选择定期自动清理,则无需关闭binlog,即不用注释log-bin=mysql-bin和binlog_format=mixed
如图
五、写在最后
这里要说明一下,关闭Binlog有利也有弊。如数据异常还可以尝试从binlog中恢复,如不关闭又将占有大量磁盘空间。所以,还请自行选择是否关闭binlog。
并注意养成平常定期备份数据的习惯。