mysql清除binlog

mysql开启BINGLOG后日志文件增长比较快,很快占满磁盘空间。
通过以下几种方式删除日志文件:
一、设置日志保留时长expire_logs_days自动删除
查看当前日志保存天数:

show variables like ‘%expire_logs_days%’;

这个默认是0,也就是logs不过期,可通过设置全局的参数,使他临时生效:

set global expire_logs_days=7;

设置了只保留7天BINLOG, 下次重启mysql这个参数默认会失败,所以需在my.cnf中设置

expire_logs_days = 7

二、手动删除BINLOG (purge binary logs)
用于删除列于在指定的日志或日期之前的日志索引中的所有二进制日志。这些日志也会从记录在日志索引文件

PURGE {MASTER | BINARY} LOGS TO ‘log_name’
PURGE {MASTER | BINARY} LOGS BEFORE ‘date’

例如:

PURGE MASTER LOGS TO ‘mysql-bin.010′;
PURGE MASTER LOGS BEFORE ‘2008-06-22 13:00:00′;
PURGE MASTER LOGS BEFORE DATE_SUB( NOW( ), INTERVAL 3 DAY);

### 关于 MySQL Binlog 二进制日志 #### 配置 MySQL Binlog 日志 为了启用并配置 MySQL 的二进制日志功能,需编辑 MySQL 的配置文件 `my.cnf` 或者 `my.ini` 文件中的 `[mysqld]` 段落。通过设置 `log_bin` 参数来指定开启二进制日志记录,并可以定义存储路径和命名规则[^3]。 例如: ```ini [mysqld] server-id=1 log_bin=D:/mysql/log/binlog/mysql-bin expire_logs_days=7 max_binlog_size=100M ``` 上述配置表示启用了二进制日志,指定了日志保存的位置为 D:\mysql\log\binlog 下面,命名为 mysql-bin 开头的文件序列;设置了过期自动删除策略为七天未被访问的日志将会被清除;最大单个日志大小不超过 100MB。 #### 查看 MySQL Binlog 日志 一旦成功配置好之后,可以通过多种方式查看当前服务器上的二进制日志状态及其内容。要获取现有的所有二进制日志列表,可执行如下 SQL 命令: ```sql SHOW BINARY LOGS; ``` 如果想具体浏览某个特定编号的日志条目,则需要用到 `mysqlbinlog` 工具或者直接利用 SQL 查询语句实现。比如查询名为 `'mysql-bin.000004'` 的日志中包含关键字 "drop" 的事件,可以用下面的方法之一完成操作[^4]: 使用命令行工具: ```bash [root@db01 binlog]# mysql -e "show binlog events in 'mysql-bin.000004'" | grep drop ``` 或者进入 MySQL 客户端后运行相应SQL指令: ```sql SHOW BINLOG EVENTS IN 'mysql-bin.000004'; ``` #### 清理 MySQL Binlog 日志 当不再需要旧版本的数据变更历史时,应该及时清理这些无用的日志以释放磁盘空间。除了之前提到过的基于时间周期(`expire_logs_days`) 自动回收机制外,还可以手动触发此过程。这通常是在维护期间由管理员根据实际情况决定何时进行清理工作。对于一次性彻底移除所有早于某时刻之前的日志项来说,可以采用以下两种途径之一来进行处理: - 使用 PURGE BINARY LOGS TO 命令直到给定的时间戳; ```sql PURGE BINARY LOGS TO 'mysql-bin.000008'; ``` - 利用 PURGE BINARY LOGS BEFORE 来设定日期范围内的数据会被清除掉。 ```sql PURGE BINARY LOGS BEFORE DATE_SUB(UTC_TIMESTAMP(), INTERVAL 7 DAY); ``` 以上就是有关 MySQL Binlog 二进制日志的基础介绍、配置方法以及基本的操作指南[^1]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值