mysql8.0设置清理7天前的binlog

 admin   2022-09-19 09:44   245 人阅读  0 条评论

MySQL 8.0.19调整binlog保留时间默认为30天,测试环境不需要保留那么久,占用太多磁盘空间。生产环境根据需要可以保留的久一些,我们默认保留7天。

1、动态修改生效

set global binlog_expire_logs_seconds= 259200;

图片.png

2、修改配置文件,重启后读取生效

vim /etc/my.cnf.d/mysql-server.cnf

图片.png

binlog_expire_logs_seconds= 259200

图片.png

3、验证是否生效

show variables like 'binlog_expire%';

图片.png

注意:MySQL5.7版本可以通过

set global expire_logs_days = 7;

然后再flush logs;就可以删除过期binlog

图片.png

设置binlog保留时间,binlog_expire_logs_seconds是8.0里面新增的,优先级比较高,所以就会报如上错误

在mysql 8.0版本中新增了binlog_expire_logs_seconds,该参数表示binlog的失效日期单位秒。

8.0之前的版本,binlog的失效日志用expire_logs_days来配置,单位是天。

当mysql启动时,参数文件中binlog_expire_logs_seconds和expire_logs_days都没配置的时候,mysql会使用binlog_expire_logs_seconds作为默认配置,并且默认值为2592000秒,即30天。

当mysql启动时,参数文件中binlog_expire_logs_seconds和expire_logs_days有一个设置为非0值则非0值的参数作为binlog日志的失效期。

在使用了binlog_expire_logs_seconds作为binlog的配置文件,此时在修改expire_logs_days会抛出错误,不允许同时使用binlog_expire_logs_seconds和expire_logs_days.

该参数支持动态修改,并且支持持久到配置文件:

持久化:

mysql> set  persist binlog_expire_logs_seconds=604800;
Query OK, 0 rows affected (0.00 sec)

也可以通过修改配置文件,将binlog_expire_logs_seconds=604800 加到[mysqld]下


本文地址:https://liuchunjie.top/?id=489
版权声明:本文为原创文章,版权归 admin 所有,欢迎分享本文,转载请保留出处!

 发表评论


表情

还没有留言,还不快点抢沙发?