MySQL 删除binglog
温馨提示:
本文最后更新于 2024年05月22日
,已超过 332 天没有更新。若文章内的图片失效(无法正常加载),请留言反馈或直接联系我。
binlog 是记录所有数据库表结构变更(例如CREATE、ALTER TABLE…)以及表数据修改(INSERT、UPDATE、DELETE…)的二进制日志。
binlog 不会记录SELECT和SHOW这类操作,因为这类操作对数据本身并没有修改,但你可以通过查询通用日志来查看MySQL执行过的所有语句。
二进制日志包括两类文件:二进制日志索引文件(文件名后缀为 .index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为 .00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。
所以简单点描述,数据库 写操作 越多越频繁,binlog 记录的越多,甚至出现笔者遇到的 爆炸增长。
手动删除
直接在 /var/lib/mysql 路径下,将 binlog.0* 删除掉(注意不要删除 binlog.index)
该方法不推荐,因为手动删除并不会更新 binlog.index,而 binlog.index 的作用是加快查找 binlog 文件的速度。
删除指定编号之前的 binlog
mysql> PURGE MASTER LOGS TO 'binlog.000860';
Query OK, 0 rows affected (0.01 sec)
删除指定日期之前的 binlog
mysql> PURGE MASTER LOGS BEFORE '2020-11-11 11:11:11';
Query OK, 0 rows affected (0.19 sec)
清空所有 binlog
mysql> RESET MASTER;
Query OK, 0 rows affected (0.09 sec)
配置自动清理mysql> set global expire_logs_days=7;
则只保留7天内的 binlog 文件。
或者修改 MySQL 配置文件,设置 expire_logs_days=7 然后重启服务,即可永久生效。
正文到此结束
- 本文标签: mysql
- 本文链接: https://www.letcode.cn/article/42
- 版权声明: 本文由Jack.Chen原创发布,转载请遵循《 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0)》许可协议授权
热门推荐
该篇文章的评论功能已被站长关闭