前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[pymysqlbinlog] binlog中第一个event FORMAT_DESCRIPTION_EVENT

[pymysqlbinlog] binlog中第一个event FORMAT_DESCRIPTION_EVENT

原创
作者头像
大大刺猬
发布2024-04-22 16:14:42
1280
发布2024-04-22 16:14:42
举报
文章被收录于专栏:大大刺猬大大刺猬

导读

binlog中的第一个event 用来标识这个binlog的基础信息. 是非常重要的. 使用mysqlbinlog 命令解析binlog的时候 也是要先执行第一个event的, 不然数据库会无法识别. 报错ERROR 1609 (HY000): The BINLOG statement of type `Table_map` was not preceded by a format description BINLOG statement

代码语言:python
复制
(root@127.0.0.1) [(none)]> BINLOG '
    '> jg0iZhNsMK0YNgAAAOkBAAAAAFcAAAAAAAEACmRiMjAyNDA0MTkAAnQxAAEDAAEBAQChWU2A
    '> jg0iZiBsMK0YKAAAABECAAAAAFcAAAAAAAEAAgAB/wACAAAAna4+yw==
    '> '/*!*/;
ERROR 1609 (HY000): The BINLOG statement of type `Table_map` was not preceded by a format description BINLOG statement.
(root@127.0.0.1) [(none)]> 

所以这个event里面到底包含啥信息呢?

FORMAT_DESCRIPTION_EVENT

作为binlog的第一个event, 格式还是比较简单的. event_header的信息都是固定, 就不讲了. 来看下payload信息, 如下表格,

对象

大小

描述

binlog_version

2

binlog版本信息, 5.7和8.0都是binlog v4

mysql_version

50

mysql server版本.

create_timestamp

4

创建时间

event_header_length

1

event_header的长度, 固定19

event_post_header_len

38/41

payload header的长度, 和版本有关系.

checksum_alg

1

校验算法(0:无, 1:crc32)

checksum

0/4

校验值, 其实属于(event_header)

就这么点...

event_post_header_len 跟mysql版本有关, 5.7的话是38个event, 8.0是41个event.(新增了PARTIAL_UPDATE_ROWS_EVENT,TRANSACTION_PAYLOAD_EVENT,HEARTBEAT_LOG_EVENT_V2) 后面用的时候再讲吧.

现在和官方工具对比一下

我们解析出来信息如下:

官方解析出来的信息如下:

是完全对得上的. 包括 base64值(row event的时候再细讲).

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 导读
  • FORMAT_DESCRIPTION_EVENT
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档