mysql bin 二进制日志_mysql 的binlog 是二进制日志?

mysqlbinlog功能是将 MySQL 的binlog日志转换成MySQL 文本SQL语句,默认情况下binlog日志是二进制文件.

用file命令查看文件类型

$ file mysql-bin.002149

mysql-bin.002149: MySQL replication log

直接用xxd命令查看(二进制)

$ xxd -l 1024 mysql-bin.002149

00000000: fe62 696e 562a 5f5d 0f01 0000 0077 0000 .binV*_].....w..

00000010: 007b 0000 0000 0004 0035 2e37 2e32 372d .{.......5.7.27-

00000020: 3075 6275 6e74 7530 2e31 362e 3034 2e31 0ubuntu0.16.04.1

00000030: 2d6c 6f67 0000 0000 0000 0000 0000 0000 -log............

00000040: 0000 0000 0000 0000 0000 0000 0000 0013 ................

转换日志成文本的sql看一下

$ mysqlbinlog --no-defaults /var/lib/mysql/mysql-bin.002149 >~/test.sql

$ head ~/test.sql

输出

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;

/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;

DELIMITER /*!*/;

# at 4

#190822 7:51:43 server id 1 end_log_pos 123 CRC32 0x6c47a911 Start: binlog v 4, server v 5.7.27-0ubuntu0.16.04.1-log created 190822 7:51:43

BINLOG '

D9ldXQ8BAAAAdwAAAHsAAAAAAAQANS43LjI3LTB1YnVudHUwLjE2LjA0LjEtbG9nAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA

ARGpR2w=

'/*!*/;

输出虽然大部分是文本,但因为采用的mixed模式,也有类似BINLOG类似的指令,这部分是无法转成sql语句的。也就无法查看了。

对这段神秘的BINLOG解析一下:

echo "D9ldXQ8BAAAAdwAAAHsAAAAAAAQANS43LjI3LTB1YnVudHUwLjE2LjA0LjEtbG9nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQAARGpR2w=" |base64 -d |xxd

将会输出:

00000000: 0fd9 5d5d 0f01 0000 0077 0000 007b 0000 ..]].....w...{..

00000010: 0000 0004 0035 2e37 2e32 372d 3075 6275 .....5.7.27-0ubu

00000020: 6e74 7530 2e31 362e 3034 2e31 2d6c 6f67 ntu0.16.04.1-log

00000030: 0000 0000 0000 0000 0000 0000 0000 0000 ................

00000040: 0000 0000 0000 0000 0000 0013 380d 0008 ............8...

00000050: 0012 0004 0404 0412 0000 5f00 041a 0800 .........._.....

00000060: 0000 0808 0802 0000 000a 0a0a 2a2a 0012 ............**..

00000070: 3400 0111 a947 6c 4....Gl

和前面那段似曾相识。

mysqlbinlog加–base64-output=DECODE-ROWS -v 参数可以把BINLOG部分转化成可读的注释掉的SQL, 但不是所有的都能成功转化。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值