mysql binlog row格式查看

MySQL 5.1开始,binlog支持row-based的格式,默认情况下只能看到一些经过base-64编码的信息,如

DELIMITER /*!*/;

# at 7493962

#090827 5:25:03 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.1.26-rc-community-log created 090827 5:25:03

BINLOG ‘

L6iVSg8BAAAAZgAAAAAAAAAAAAQANS4xLjI2LXJjLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC

‘/*!*/;

# at 7493962

# at 7494009

#090827 13:20:40 server id 1 end_log_pos 7494009 Table_map: `test`.`test1` mapped to number 96991

#090827 13:20:40 server id 1 end_log_pos 7494045 Write_rows: table id 96991 flags: STMT_END_F

BINLOG ‘

qBeWShMBAAAALwAAAHlZcgAAAN96AQAAAAAABHRlc3QABXRlc3QxAAIDDwI8AAM=

qBeWShcBAAAAJAAAAJ1ZcgAQAN96AQAAAAEAAv/8AwAAAAEz

‘/*!*/;

# at 7494045

#090827 13:20:40 server id 1 end_log_pos 7494072 Xid = 2525562

COMMIT/*!*/;

DELIMITER ;

# End of log file

这里只能看到`test`.`test1`表做了改动,但具体改了什么,就不知道了,那么怎样才能看到到底改了什么呢?从MySQL 5.1.28开始,mysqlbinlog多了个参数–verbose(或-v),将改动生成带注释的语句,如果使用两次这个参数(如-v -v),会生成字段的类型、长度、是否为null等属性信息。如下:

mysqlbinlog -v -v mysql-bin.001912

DELIMITER /*!*/;

# at 7493962

#090827 5:25:03 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.1.26-rc-community-log created 090827 5:25:03

BINLOG ‘

L6iVSg8BAAAAZgAAAAAAAAAAAAQANS4xLjI2LXJjLWNvbW11bml0eS1sb2cAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAUwAEGggAAAAICAgC

‘/*!*/;

# at 7493962

# at 7494009

#090827 13:20:40 server id 1 end_log_pos 7494009 Table_map: `test`.`test1` mapped to number 96991

#090827 13:20:40 server id 1 end_log_pos 7494045 Write_rows: table id 96991 flags: STMT_END_F

BINLOG ‘

qBeWShMBAAAALwAAAHlZcgAAAN96AQAAAAAABHRlc3QABXRlc3QxAAIDDwI8AAM=

qBeWShcBAAAAJAAAAJ1ZcgAQAN96AQAAAAEAAv/8AwAAAAEz

‘/*!*/;

### INSERT INTO test.test1

### SET

### @1=3 /* INT meta=0 nullable=1 is_null=0 */

### @2=’3′ /* VARSTRING(60) meta=60 nullable=1 is_null=0 */

# at 7494045

#090827 13:20:40 server id 1 end_log_pos 7494072 Xid = 2525562

COMMIT/*!*/;

DELIMITER ;

# End of log file

这时能看懂了吧?但还有个问题,BINLOG开头的那些信息还是会显示出来,很难看,能不能去掉呢?答案是肯定的,加–base64-output=DECODE-ROWS参数。如下

mysqlbinlog -v -v –base64-output=DECODE-ROWS mysql-bin.001912

DELIMITER /*!*/;

# at 7493962

#090827 5:25:03 server id 1 end_log_pos 0 Start: binlog v 4, server v 5.1.26-rc-community-log created 090827 5:25:03

# at 7493962

# at 7494009

#090827 13:20:40 server id 1 end_log_pos 7494009 Table_map: `test`.`test1` mapped to number 96991

#090827 13:20:40 server id 1 end_log_pos 7494045 Write_rows: table id 96991 flags: STMT_END_F

### INSERT INTO test.test1

### SET

### @1=3 /* INT meta=0 nullable=1 is_null=0 */

### @2=’3′ /* VARSTRING(60) meta=60 nullable=1 is_null=0 */

# at 7494045

#090827 13:20:40 server id 1 end_log_pos 7494072 Xid = 2525562

COMMIT/*!*/;

DELIMITER ;

# End of log file

示例:  sudo mysqlbinlog -v -v --base64-output=DECODE-ROWS --start-datetime="2014-08-09 10:42:36" --stop-datetime="2014-08-10 10:42:36" mysql-bin.000005 |grep -A 65 "empolyee"

mysql binlog row格式查看,布布扣,bubuko.com

时间: 2025-01-02 15:22:32

mysql binlog row格式查看的相关文章

Window 下mysql binlog开启及查看

查看是否开启了binlog: win+r => cmd => 连接mysql=>show variables like 'log_%'; mysql> show variables like 'log_%'; +---------------------------------+-------------+ | Variable_name | Value | +---------------------------------+-------------+ | log_bin |

Window 下mysql binlog开启及查看,mysqlbinlog

查看是否开启了binlog: win+r => cmd => 连接mysql=>show variables like 'log_%'; mysql> show variables like 'log_%'; +---------------------------------+-------------+ | Variable_name | Value | +---------------------------------+-------------+ | log_bin |

Mysql Binlog 三种格式介绍及分析

一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能.(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除

Mysql Binlog三种格式介绍及分析【转】

一.Mysql Binlog格式介绍       Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能.(相比row能节约多少性能 与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条 件的update操作,以及整表

mysql 的binlog format格式种类及分析

一.Mysql Binlog格式介绍 Mysql binlog日志有三种格式,分别为Statement,MiXED,以及ROW! 1.Statement:每一条会修改数据的sql都会记录在binlog中. 优点:不需要记录每一行的变化,减少了binlog日志量,节约了IO,提高性能.(相比row能节约多少性能与日志量,这个取决于应用的SQL情况,正常同一条记录修改或者插入row格式所产生的日志量还小于Statement产生的日志量,但是考虑到如果带条件的update操作,以及整表删除,alter

MySQL——binlog

一.binlog简介: 1.什么是binlog: binlog日志用于记录所有更新了数据或者已经潜在更新了数据(例如,没有匹配任何行的一个DELETE)的所有语句.语句以"事件"的形式保存,它描述数据更改. 2.binlog的记录格式: Mysql binlog日志有三种格式,分别为:Statement ,MiXED ,和ROW: (在MySQL5.7.7版本之后,把binlog_format的默认值修改成了ROW.master将修改表的event写入binlog中,并且master将

MySql binlog(理论篇)

1.什么是binlog? binlog日志用于记录所有更新了数据的sql语句或保存被修改的记录Row: 有了binlog,可以用于实时备份,master/slave主从同步: 在5.0版本前支持文本格式和二进制格式,5.0后只支持二进制格式:二进制日志在性能.信息处理方面更佳: 2.binlog日志格式 Mysql binlog日志有三种格式,分别为Statement Level,Mixed Level,以及Row Level! Statement Level:每一条修改数据的sql都会记录在b

Mysql binlog日志及binlog恢复数据库操作

初识MySQL 日志binlogMySQL重要log,二进制日志文件,记录所有DDL和DML语句(除select),事件形式记录,包含语句所执行的消耗时间,事务安全型.DDL(数据库定义语言),主要命令有create.alter.drop等.DDL主要定义或改变表table的结构.数据类型.建表时使用.MDL(数据操纵语言),主要命令有select.update.insert.delete. mysqlbinlog常见选项:--start-datetime:从二进制中读取指定时间戳.--stop

MySQL Binlog Mixed模式记录成Row格式

概念: binlog format有三种形式:Statement.Mixed.Row,具体的信息可以自行到网上搜查. 分析(本文碰到的案例): 查看MySQL binlog format [email protected] : dba_test 02:33:39>show variables like 'binlog_format%';