怎么用mysqlbinlog查看row格式的事件-成都快上网建站

怎么用mysqlbinlog查看row格式的事件

这篇文章主要介绍了怎么用MySQLbinlog查看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等属性信息。如下:

[@more@]

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

感谢你能够认真阅读完这篇文章,希望小编分享的“怎么用mysqlbinlog查看row格式的事件”这篇文章对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,更多相关知识等着你来学习!


文章名称:怎么用mysqlbinlog查看row格式的事件
文章源于:http://kswjz.com/article/ijodps.html
扫二维码与项目经理沟通

我们在微信上24小时期待你的声音

解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流