binlog日志
binlog是MySQL数据库的一种日志文件,用于记录所有对数据的修改操作。binlog全称为binary log,它以二进制格式记录MySQL服务器上所有的修改操作,包括对哪个数据库、哪个表进行了何种类型的操作(如INSERT、UPDATE、DELETE等),以及修改前后的值。
作用
- 数据备份和恢复,可以使用binlog日志将数据同步到其他MySQL服务器,用于备份和灾难恢复。
- 数据复制:MySQL Replication是通过读取master上的binlog日志来同步数据到slave服务器的。
- 数据恢复:如果在某些情况下数据被意外删除或损坏,可以使用binlog日志还原到先前的状态。
- 查询回放:binlog日志也可以用于查询分析,如确定特定问题的起因或查找错误数据。
启用binlog日志
要启用binlog日志,需要在MySQL配置文件中设置以下参数:
log-bin=mysql-bin
server-id=1
其中log-bin指定binlog日志的文件名(mysql-bin是默认值),server-id是MySQL实例的唯一标识符,用于复制和主从同步。
启用binlog日志后,MySQL会自动创建一个以log-bin参数命名的二进制日志文件,并将所有对数据的修改操作记录到该文件中。
定时清理:
由于binlog日志会占用大量的存储空间,所以需要进行定时的清理。
之前的版本是设置 expire_logs_days = 60; 过期时间,现在这个参数已经弃用了,会报以下错误
//报错信息
The option expire_logs_days and binlog_expire_logs_seconds cannot be used together. Please use binlog_expire_logs_seconds to set the expire time (expire_logs_days is deprecated)
//设置过期清理时间,按秒计算
- 通过命令设置
set global binlog_expire_logs_seconds = 172800;
- 通过配置文件设置 在mysql的my.ini文件中找到binlog_expire_logs_seconds参数进行配置

- 查询是否生效
show variables like 'binlog_expire_logs_seconds';
