MySQL的Binary Log(二进制日志)记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。开启MySQL的binlog功能,对于数据库的备份恢复、主从复制、数据迁移等场景都非常重要。
Binlog是MySQL数据库的一种日志文件,用于记录数据库的所有更改操作。这些操作可以是数据的修改、删除或插入,也可以是表结构的变更等。Binlog的主要作用是用于数据恢复和主从复制。
MySQL的binlog有两种格式:
在MySQL配置文件(通常是my.cnf或my.ini)中添加或修改以下配置:
[mysqld]
log-bin=mysql-bin # 开启binlog
server-id=1 # 设置服务器ID,主从复制时每个服务器ID必须唯一
binlog_format=MIXED # 设置binlog格式,可以是STATEMENT、ROW或MIXED修改配置文件后,重启MySQL服务使配置生效。
原因:binlog记录了所有的DDL和DML操作,会增加磁盘I/O和CPU的负担。
解决方法:
原因:长时间运行,binlog文件不断累积,导致文件过大。
解决方法:
PURGE BINARY LOGS命令定期清理过期的binlog文件。expire_logs_days参数,自动清理过期的binlog文件。通过以上步骤和配置,你可以成功开启MySQL的binlog功能,并根据实际需求进行相应的优化和调整。