使用mysqlbinlog工具查看Binlog备份文件
操作背景
mysqlbinlog工具用于解析Binlog备份文件,包含在MySQL软件包中。您可在MySQL官网下载对应版本的MySQL软件包,解压并获取解压包中的mysqlbinlog工具(MySQL 5.6和5.7对应的mysqlbinlog版本均为3.4)。由于存在部分用户使用的mysqlbinlog工具版本太旧,无法正确解析Binlog备份文件,因此,为您整理了本文,指导您获取最新的mysqlbinlog工具。
RDS for MySQL也支持使用第三方工具解析Binlog。
操作方法
- 下载MySQL软件包。
软件包版本最好与当前您使用的MySQL大版本保持一致。
例如,您本地的MySQL版本为5.7.27,则下载如下版本和系统的软件包:
- Product Version:5.7.27
- Operating System:Linux-Generic
下载完成后的MySQL软件包名为:mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz。
图1 下载
- 解压软件包,找到mysqlbinlog工具。
- 执行如下命令,查看mysqlbinlog工具的版本信息。
[root@ecs]# tar -zxf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz [root@ecs]# cd mysql-5.7.27-linux-glibc2.12-x86_64/bin [root@ecs]# ll mysqlbinlog -rwxr-xr-x 1 7161 31415 11310886 Jun 10 2019 mysqlbinlog [root@ecs]# ./mysqlbinlog -V ./mysqlbinlog Ver 3.4 for linux-glibc2.12 at x86_64
- 使用mysqlbinlog工具解析binlog。
以解析“mysql-bin.000001”为例:
[root@ecs]# ./mysqlbinlog --no-defaults -vv /root/mysql-bin.000001 /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/; /*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/; DELIMITER /*!*/; # at 4 #200316 17:54:14 server id 1 end_log_pos 126 CRC32 0x92b3f2ca Start: binlog v 4, server v 5.7.27-5-debug-log created 200316 17:54:14 at startup ROLLBACK/*!*/; BINLOG ' xkxvXg8BAAAAegAAAH4AAAAAAAQANS43LjI3LTUtZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAADGTG9eEzgNAAgAEgAEBAQEEgAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA Xz0AAcrys5I= '/*!*/; # at 126 #200316 17:54:14 server id 1 end_log_pos 157 CRC32 0xfcc47ad6 Previous-GTIDs # [empty] # at 157 #200316 17:54:27 server id 1 end_log_pos 204 CRC32 0xa7febd1f Rotate to mysqlbin. 000002 pos: 4 SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/; DELIMITER ; # End of log file /*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/; /*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;