mysql 清理
一、清理binlog
1、运行一段时间后,mysql数据库占用磁盘很大,仔细查看后发现是*.binlog文件占用很大,一个文件接近1G
2、操作
设置日志保留时长expire_logs_days自动删除
查看当前日志保存天数:
mysql> show variables like '%expire_logs_days%';
默认是0,也就是logs不过期.
如果数据库此时不便重启,可以设置全局的参数,使他临时生效:
mysql> set global expire_logs_days=7;
设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败
如果要永久生效,需要在my.cnf中设置
vi /etc/my.cnf
追加内容:
expire_logs_days = 7
也可以先手动删除BINLOG (purge binary logs)
删除指定的日志
mysql> PURGE {MASTER | BINARY} LOGS TO 'log_name'
例:删除binlog.1000
mysql> PURGE MASTER LOGS TO 'binlog.1000';
或删除指定日期之前的日志索引中的所有二进制日志。
mysql> PURGE {MASTER | BINARY} LOGS BEFORE 'date'
例:删除2021-06-22 12:00:00前的文件
mysql> PURGE MASTER LOGS BEFORE '2021-06-22 12:00:00';
例:删除3天前的日志
mysql> PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);