MySQL中清除binlog的几种方法以及设置了不生效的原因

碰到一个问题,就是虽然设置了set global expire_logs_days  = 3;
但是不生效,原因是改过系统时间,调到过未来时间,然后同步到现在时间,
导致binlog日志有个未来时间的日志,并且在mysql-bin.log.index第一位,
导致MySQL判断时间还没有到就不删除
解决办法:就是单独删除那个binlog日志,然后在mysql-bin.log.index删除这个文件名
再flush logs;


附:
--查看当前正在使用的binlog文件
mysql> show master status\G;

1、mysql命令purge
--使用PURGE BINARY LOGS TO删除指定的日志文件名
mysql> purge master logs to "mysql-bin.000622";

--删除2023-08-01 00:00:00时间之前的binlog
mysql> PURGE BINARY LOGS BEFORE '2023-08-01 00:00:00';


2、手动rm清理
rm -rf mysql-bin.00062*;
vim mysql-bin.log.index
清除掉里面的mysql-bin.00062*纪录


3、参数清理
set global expire_logs_days=5;
系统自动清理,立即清理可以使用flush logs;

--删除所有的二进制日志文件
mysql> RESET MASTER;

分享到:
关键词:Linux运维MySQL

<< 上一篇

OCI如何更换IP

下一篇 >>

sar命令一些用法

网友留言(0 条)

发表评论