标签 binlog 下的文章

MySQL关闭/定期自动清理/手动清理 binlog 日志文件

一、写在前面

   相信很多人一般都是使用各种一键安装包(如:OneinStack、宝塔、WDCP等)来搭建网站运行环境,这些一键包所安装的MySQL大多默认是开启了日志文件的,如果数据操作比较频繁就会产生大量的日志,在数据库目录下面产生mysql-bin.000001--00000x的文件,而且一般都在几十MB到几个GB,更甚会占用整个硬盘空间,从而导致mysql无法启动或报错。

PS:博主曾经也是没有关这个,binlog日志一度涨到20G多,哈哈哈哈,嗝。

提示任何数据操作有风险,请提前做好备份,如数据异常,请自行负责。

常见web环境安装包:

Linux:

OneinStack

LNMP军哥

LNMP一键包

WDCP

宝塔Linux版

Win:

PhpStudy

UPUPW

宝塔面板Windows

本文主要以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服务后,执行命令:

PURGE MASTER LOGS BEFORE DATE_SUB(CURRENT_DATE, INTERVAL 10 DAY);   //删除10天前的MySQL binlog日志,可以根据需求修改时间show master logs;   //查看当前日志情况

或者使用清空命令:reset master; 清空全部日志

四、定期自动清理binlog(建议)

修改配置文件/etc/my.cnf,设置expire_logs_days,并重启mysql服务

如选择定期自动清理,则无需关闭binlog,即不用注释log-bin=mysql-binbinlog_format=mixed

# vi /etc/my.cnf  //修改expire_logs_days,这里的值表示自动删除的天数,一般设置短点,如7expire_logs_days = 7  //日志自动删除的天数。默认值为0,表示“没有自动删除”

如图

五、写在最后

   这里要说明一下,关闭Binlog有利也有弊。如数据异常还可以尝试从binlog中恢复,如不关闭又将占有大量磁盘空间。所以,还请自行选择是否关闭binlog。

   并注意养成平常定期备份数据的习惯。

 


Warning: in_array() expects parameter 2 to be array, null given in /www/users/HK1590886/WEB/usr/plugins/TopLamuLeimu/Plugin.php on line 85