查看当前日志类型
show variables like 'binlog_format';设置日志格式为基于语句形式
基于语句 set session binlog_format=statement; 基于行 set session binlog_format=row;查询当前的binlog日志
show binary logs;刷新日志,生成一个新的日志文件
flush logs;执行SQL
查看最新日志文件
基于语句查看日志 mysqlbinlog binlog.000012 基于行查看日志 mysqlbinlog -vv binlog.000012设置为基于语句的日志
set session binlog_format=statement;批量更新多条数据
刷新日志文件 flush logs; 批量更新 update user set age=6;分析日志内容
查看日志 mysqlbinlog binlog.000017 分析日志 /*!*/; # at 336 #201008 20:57:03 server id 1 end_log_pos 453 CRC32 0x9f208ee4 Query thread_id=10 exec_time=0 error_code=0 use `db_binlog`/*!*/; SET TIMESTAMP=1602161823/*!*/; update user set age=6 /*!*/; 结果 出现这条语句 update user set age=6设置为基于行的日志
set session binlog_format=row;批量更新多条数据
刷新日志文件 flush logs; 批量更新 update user set age=7;分析日志内容
查看日志 mysqlbinlog -vv binlog.000017 分析日志 '/*!*/; ### UPDATE `db_binlog`.`user` ### WHERE ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='aaa' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=6 /* INT meta=0 nullable=1 is_null=0 */ ### SET ### @1=1 /* INT meta=0 nullable=1 is_null=0 */ ### @2='aaa' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=7 /* INT meta=0 nullable=1 is_null=0 */ ### UPDATE `db_binlog`.`user` ### WHERE ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='bbb' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=6 /* INT meta=0 nullable=1 is_null=0 */ ### SET ### @1=2 /* INT meta=0 nullable=1 is_null=0 */ ### @2='bbb' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=7 /* INT meta=0 nullable=1 is_null=0 */ ### UPDATE `db_binlog`.`user` ### WHERE ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='ccc' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=6 /* INT meta=0 nullable=1 is_null=0 */ ### SET ### @1=3 /* INT meta=0 nullable=1 is_null=0 */ ### @2='ccc' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=7 /* INT meta=0 nullable=1 is_null=0 */ ### UPDATE `db_binlog`.`user` ### WHERE ### @1=5 /* INT meta=0 nullable=1 is_null=0 */ ### @2='3934f07a-0967-11eb-bf37-000c29360040' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=5 /* INT meta=0 nullable=1 is_null=0 */ ### SET ### @1=5 /* INT meta=0 nullable=1 is_null=0 */ ### @2='3934f07a-0967-11eb-bf37-000c29360040' /* VARSTRING(1020) meta=1020 nullable=1 is_null=0 */ ### @3=7 /* INT meta=0 nullable=1 is_null=0 */ # at 602 #201008 21:27:31 server id 1 end_log_pos 633 CRC32 0xcf5a7646 Xid = 145 COMMIT/*!*/; 结果 每一条数据都出现一条update语句MIXED主要使用段记录语句,当遇到UUID函数或者 Innodb引擎设置 读未提交 读已提交时 使用行记录
