1.开启binlog
#查看MySQL是否开启binlog:
show variables like '%log_bin%';
#开启,/etc/my.cnf
server-id=1
log-bin=mysql-bin
binlog_format=row
log_bin_basename=/var/log/mysql/mysql-bin #bin文件路径及名前缀
log_bin_index=/var/log/mysql/mysql-bin.index #bin文件index
2.binlog操作
#查看所有的binlog
show binary logs;
#查看第一个binlog的详细信息
show binlog events; #查看第一个binlog的详细信息
show binlog events in 'mysql-bin.000001' #查看指定binlog的详细信息
#查看当前binlog的详细信息
show master status;
#查看binlog日志文件内容
mysqlbinlog -vv myql-bin.00000*;
#清空所有binlog文件
reset master;
#重新生成新的binlog
flush logs或者mysql服务重启
#解析binlog的format_desc event格式
hexdump -C mysql-bin.0000*
3.binlog的定义
-
binlog是 记录所有数据库表结构变更或者数据变更及表结构修改的 二进制日志。每提交一次事务,就写入binlog。
-
组成部分:
- 索引文件(.index):记录所有的日志文件名称
- 日志文件(.00000*):记录所有DDL和DML(除了select)语句事件