基本上大家装MySQL,都会开启binlog功能,开启这个功能的好处是,日后方便恢复数据,而坏处是日志文件增长速度快,很快占会占满磁盘空间。 所以我们要定期或手工来删除过大的日志文件。 删除日志文件的方法大概有如下几中: 一、设置日志保留时长expire_logs_days自动删除 1.#查看当前日志保存天数: 2. 3.show variables like ‘%expire_logs_days%’; 4. 5.#这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效: 6. 7.set global expire_logs_days=7; 8. 9.#设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置 10. 11.expire_logs_days = 7 二、手动删除BINLOG (purge binary logs) 1.#用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件 2. 3.PURGE {MASTER | BINARY} LOGS TO ‘log_name’ 4.PURGE {MASTER | BINARY} LOGS BEFORE ‘date’ 5. 6.#例如: 7. 8.PURGE MASTER LOGS TO ‘mysql-bin.010′; 9.PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′; 10.PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY); 11. 其它: 1.查看当前日志文件列表:show binary logs; 使用binlog日志的目的是为了方便恢复数据,所以我们不光要会删除,还要会用日志来恢复数据。 使用binlog恢复数据: 使用mysqlbinlog命令恢复日志
1.mysqlbinlog -d test /root/mysql/mysql-bin.000001|mysql -uroot -ppassword |