mysql自动定期清理日志文件

mysql自动定期清理日志文件,第1张

方法一: 修改配置文件

重启mysql生效

方法二:修改mysql变量

该方法在下次启动mysql后失效,也就是说重启mysql后expire_logs_days的值又还原为0了,

该方法的好处在于不用重启mysql就可以生效

用命令查看: show binary logs

然后去从服务器上查看哪个二进制正在使用,

我们看到mysql-tb-bin.000005这个日志文件正在使用。

回到主服务器开始清理日志,但是不能清理mysql-tb-bin.000005这个日志文件,用命令清理:

purge binary logs to 'mysql-tb-bin.000005'

这个命令就是清理除mysql-tb-bin.000005以外的其他二进制日志;执行成功后,再查看二进制日志列表:show binary logs

清理成功,但是这样手动清理危险很大,而且还比较复杂,有没有自动清理的方法呢?答案是有的,在my.ini里面加上这个配置:expire_logs_days=5 这个配置的意思就是,日志的过期天数,超过5天的日志,mysql会自动清理5天以前的日志

首先,建议你在删除之前先对数据库用mysqldump做个全库备份。然后进入Mysql(用root用户)。然后 show binary logs ,这个命令会列出当前保存的所有二进制日志。然后用命令:

purge binary/master logs to 日志名(表示到这个日志之前的日志都删除掉)/before 时间(表示到这个时间之前的日志都删除掉)

里面用“/”标明的是前后两个二选一的可选项。执行完后,就会删除了。

如果你不想这么麻烦,可以设置日志保存时长的。首先你要找到my.cnf配置文件,然后编辑它。在[mysqld]里面加入

expire_logs_days=想要保留的天数

然后重启Mysql服务。这样每当你重启mysql服务,或者是做flush logs的时候,系统都会把超出设置天数之外的日志删掉。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7272691.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存