MySQL的二进制日志(Binary Log)记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。二进制日志主要用于数据恢复和主从复制。
在MySQL配置文件(通常是my.cnf
或my.ini
)中,找到或添加以下配置项:
[mysqld]
log-bin=mysql-bin # 指定二进制日志文件的名称前缀
server-id=1 # 配置服务器ID,用于主从复制
MySQL支持多种日志格式,如STATEMENT
、ROW
和MIXED
。默认是STATEMENT
,但为了更好的数据一致性,通常推荐使用ROW
格式。
binlog_format=ROW # 设置二进制日志格式为ROW
可以设置二进制日志文件的过期时间,以便自动删除旧的日志文件。
expire_logs_days=10 # 设置日志文件保留10天
保存配置文件后,重启MySQL服务以使配置生效。
sudo systemctl restart mysql # 对于Linux系统
如果二进制日志文件过大,可能会占用大量磁盘空间。可以通过设置max_binlog_size
参数来限制单个日志文件的大小。
max_binlog_size=1024M # 设置单个日志文件最大为1GB
确保MySQL配置文件中的log-bin
参数正确设置,并且MySQL服务有权限写入该目录。
如果二进制日志文件损坏,可以尝试使用mysqlbinlog
工具进行修复或恢复。
mysqlbinlog --force-if-open mysql-bin.000001 > /tmp/repair.sql # 尝试修复损坏的日志文件
领取专属 10元无门槛券
手把手带您无忧上云