MySQL 5.7中,设置binlog的保留天数可以通过设置binlog_expire_logs_seconds
参数或者使用PURGE BINARY LOGS
命令。但是,从MySQL 5.7.8开始,推荐使用binlog_expire_logs_seconds
参数,该参数的单位是秒,而不是之前的天数。
设置binlog的保留时间,可以在MySQL配置文件(通常是my.cnf
或my.ini
)中设置,如下所示:
[mysqld]
binlog_expire_logs_seconds = 2592000 # 30天 * 24小时/天 * 3600秒/小时
或者在运行时通过SQL设置:
SET GLOBAL binlog_expire_logs_seconds = 2592000;
请注意,设置后需要重启MySQL服务或者使用FLUSH LOGS;
命令使设置生效。
如果你使用的是MySQL 5.7.8之前的版本,则需要使用PURGE BINARY LOGS
命令,如下:
PURGE BINARY LOGS BEFORE 'YYYY-MM-DD hh:mm:ss';
其中YYYY-MM-DD hh:mm:ss
是你想要保留日志记录之前的时间点。这个命令只能在MySQL命令行中执行,并且只能删除已经过了指定时间的旧二进制日志文件。