MySQL清理binlog日志的方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL清理binlog日志的方法相关的知识,希望对你有一定的参考价值。
参考技术A 永久生效:修改mysql的配置文件my.cnf,添加binlog过期时间的配置项: expire_logs_days=30 ,然后重启mysql,这个有个致命的缺点就是需要重启mysql。临时生效:进入mysql,用以下命令设置全局的参数: set global expire_logs_days=30 ;
(上面的数字30是保留30天的意思。)
可以直接删除 binlog 文件,但是可以通过 mysql 提供的工具来删除更安全,因为 purge 会更新 mysql-bin.index 中的条目,而直接删除的话, mysql-bin.index 文件不会更新。 mysql-bin.index 的作用是加快查找 binlog 文件的速度。
命令查看 binlog 文件
删除举例:
mysql定时清理binlog
一、没有主从同步的情况下清理日志 mysql -uroot -p123456 -e ‘PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ),INTERVAL 5 DAY)‘; #mysql 定时清理5天前的binlog mysql -u root -p #进入mysql 控制台 reset master; #重置binlog 二、MySQL主从同步下安全清理binlog日志 1、mysql -u root -p #进入从服务器mysql控制台 show slave status\G; #检查从服务器正在读取哪个日志,有多个从服务器,选择时间最早的一个做为目标日志。 2、进入主服务器mysql控制台 show master log; #获得主服务器上的一系列日志 PURGE MASTER LOGS TO ‘binlog.000058‘; #删除binlog.000005之前的,不包括binlog.000058 PURGE MASTER LOGS BEFORE ‘2016-06-22 13:00:00‘; #清除2016-06-22 13:00:00前binlog日志 PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); #清除3天前binlog日志 三、设置自动清理MySQL binlog日志 vi /etc/my.cnf #编辑配置 expire_logs_days = 15 #自动删除15天前的日志。默认值为0,表示从不删除。 log-bin=mysql-bin #注释掉之后,会关闭binlog日志 binlog_format=row #注释掉之后,会关闭binlog日志
以上是关于MySQL清理binlog日志的方法的主要内容,如果未能解决你的问题,请参考以下文章