MySQL清理binlog日志的方法

MySQL清理binlog日志的方法,第1张

永久生效:修改mysql的配置文件my.cnf,添加binlog过期时间的配置项: expire_logs_days=30 ,然后重启mysql,这个有个致命的缺点就是需要重启mysql。

临时生效:进入mysql,用以下命令设置全局的参数: set global expire_logs_days=30

(上面的数字30是保留30天的意思。)

可以直接删除 binlog 文件,但是可以通过 mysql 提供的工具来删除更安全,因为 purge 会更新 mysql-bin.index 中的条目,而直接删除的话, mysql-bin.index 文件不会更新。 mysql-bin.index 的作用是加快查找 binlog 文件的速度。

命令查看 binlog 文件

删除举例:

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

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

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

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

expire_logs_days=想要保留的天数

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

第一种方法:

mysql>show binary logs 查看mysql bin-log日志,除了这个以外的,其它都可以使用删除。

mysql>purge binary logs to 'binlog.000058' (删除mysql bin-log日志,删除binlog.000005之前的,不包括binlog.000058)

第二种方法:

进入数据库,查看一下当前使用的binlog日志是哪个,除了这个以外的,其它都可以使用rm -rf 删除!


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/269176.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存