二进制日志(binary log),也称为二进制日志,是MySQL数据库的一种日志文件,记录了数据库中所有更改数据的语句。二进制日志文件用于复制、数据恢复以及审计。
二进制日志的开启和配置:
- 查看二进制日志是否开启:
SHOW VARIABLES LIKE 'log_bin';
- 查看二进制日志的配置路径:
SHOW VARIABLES LIKE 'log_bin%';
- 查看当前二进制日志的文件:
SHOW BINARY LOGS;
- 查看正在写入的二进制日志文件及其大小:
SHOW BINLOG EVENTS;
- 查看二进制日志内容:
SHOW BINLOG EVENTS IN 'mysql-bin.000001';
- 配置二进制日志的开启和路径,在
my.cnf
或my.ini
配置文件中设置:
[mysqld]
log_bin = /var/log/mysql/mysql-bin.log
- 设置二进制日志的过期时间,自动删除过期的日志文件:
expire_logs_days = 7
- 设置二进制日志的最大大小,自动滚动生成新的日志文件:
max_binlog_size = 100M
二进制日志的管理:
- 手动刷新日志,强制切换到新的日志文件:
FLUSH LOGS;
- 删除二进制日志:
PURGE BINARY LOGS TO 'mysql-bin.010';
- 删除旧的二进制日志文件:
PURGE BINARY LOGS BEFORE 'YYYY-MM-DD hh:mm:ss';
二进制日志的应用场景:
- 数据恢复:通过二进制日志文件恢复数据。
- 复制:MySQL主从复制就是通过读取二进制日志实现的。
- 审计:可以审计数据库中的所有变更。
- 分析和调试:可以分析和调试数据库的问题。
注意:在生产环境中,应当定期备份二进制日志文件,并确保有适当的策略来管理它们,以防止磁盘空间耗尽或日志文件过大。