设置日志保留时长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);