显示来自 mysql binlog (GTID) 的 sql 语句

Gla*_*ost 6 mysql replication mysqlbinlog

我有用于通过 GTID 复制的 mysql 二进制日志。

我正在尝试显示执行的更新/插入语句,如下所示:

mysqlbinlog --base64-output=DECODE-ROWS mysql-bin.000024
Run Code Online (Sandbox Code Playgroud)

但我所看到的只是这样,没有更新或插入 stmt 的痕迹:

SET TIMESTAMP=1431681617/*!*/;
BEGIN
/*!*/;
# at 746987321
# at 746987392
# at 746987484
#150515 11:20:17 server id 1  end_log_pos 746987515 CRC32 0xeb874754    Xid = 997501767
COMMIT/*!*/;
# at 746987515
#150515 11:20:22 server id 1  end_log_pos 746987563 CRC32 0xc5ece64a    GTID [commit=yes]
SET @@SESSION.GTID_NEXT= 'a4ade293-c63a-11e4-94cf-005056944a56:2059057'/*!*/;
# at 746987563
#150515 11:20:22 server id 1  end_log_pos 746987650 CRC32 0x92296355    Query   thread_id=71622 exec_time=0 error_code=0
Run Code Online (Sandbox Code Playgroud)

我不确定 GTID 复制的格式/配置以及在哪里寻找它...

Gla*_*ost 10

似乎必须添加选项 --verbose :

mysqlbinlog  --base64-output=AUTO --verbose mysql-bin.000005 
Run Code Online (Sandbox Code Playgroud)

在结果中你会看到:

### UPDATE `customer`
### WHERE
###   @1=388442
###   @2=382023
###   @3='2015:05:30'
###   @4='2015:06:02'
###   @5=3
###   @6=1
###   @7=0
Run Code Online (Sandbox Code Playgroud)

@x 是按顺序排列的表列