我搜集到了一些资料,对理解代码比较有帮助。

在头文件中binlog_event.h中,有描述

class Log_event_header

class Log_event_footer

参见【Mysteries of the Binary Log Presentation.pdf】

代码见【mysql-5.7.6-m16_src.zip】

MySQL binlog头4个字节:BINLOG_HEADER = b'\xfe\x62\x69\x6e'

然后我们就可以一个Event,一个Event的读取了(格式基本就是一段一段的了。)

用Python解析Event header

struct.unpack("=IBIIIH", header), 得到的分别是timestamp, typecode, server_id, event_len, next_pos, flasg

查看当前binlog的设置

show variables like '%log%';

set global binlog_format='row'   ; 'statement'  or   'mixed'

binlog格式解析相关的文章和代码:

http://www.tuicool.com/articles/6RvUnqV

http://www.oschina.net/code/snippet_915111_16360

http://www.xcoder.cn/html/Database/mysql/2013/0526/9191.html

http://blog.csdn.net/wyzxg/article/details/7412777

【解析binlog格式,网上能找到有用的文章并不是很多,代码就更少了,我这份代码可以供大家参考。】

细节

1. Decimal在binlog中的的存储格式:

我写到field_descriptor.py里面的 decimal_descriptor, parse()函数, 时间久了,以后我再更新它的解析细节描述。

更多看我Rust的实现版本吧,相对于Python的版本fix了一些问题,占用资源肯定又少了。

mysql binlog c++_MySQL binlog的格式解析相关推荐

  1. mysql事件类型_MySQL binlog中的事件类型

    MySQL binlog记录的所有操作实际上都有对应的事件类型的,譬如STATEMENT格式中的DML操作对应的是QUERY_EVENT类型,ROW格式下的DML操作对应的是ROWS_EVENT类型. ...

  2. mysql binlog协议_mysql binlog协议分析--具体event

    这几天在修改canal, 连接mysql和maria接收到的event有所区别 拿一个简单的insert sql来举例 mysql 会有以下几个event写入到binlog里 1.ANONYMOUS_ ...

  3. mysql 写binlog 原理_MySQL binlog原理及应用

    01 概述 Binlog它记录了所有的DDL和DML(除了数据查询语句)语句,以事件(EVENT)形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. 一般来说开启二进制日志 ...

  4. mysql binlog使用_mysql binlog 基本使用

    先查看下数据库 binlog 的状态 show variables like 'log_bin'; +---------------+-------+ | Variable_name | Value ...

  5. mysql binlog 记录_MYSQL binlog 日志内容查看

    记录mysql数据库真正执行更改的所有操作(DML语句),不包含那些没有修改任何数据的语句,不会记录select和show这样的语句. 二进制日志的作用: 1. 可以完成主从复制的功能 2. 进行恢复 ...

  6. mysql 5.7 binlog 压缩_mysql binlog压缩处理

    前一段时间系统mysql压力较大,产生大量binlog,大量的binlog删除后又担心后期出现问题难以调查,保存后又占用本身的空间存储. 每天产生的binlog可以多达5-6G. 因此考虑是否扩容机器 ...

  7. mysql point 修改_mysql point WKB格式 php 解析 unpack

    SET @g = ST_GeomFromText('POINT(118.624653 31.919936)'); SELECT HEX(@g); 输出: 00000000 01 01000000 A4 ...

  8. jdbc mysql 换行符_mysql JDBC URL格式各个参数详解

    mysql JDBC URL格式如下: jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值 ...

  9. 老男孩mysql参数配置_MySQL启动相关参数解析

    1.basedir = /usr/local/mysql 代表MySQL安装路径 2.datadir = /usr/local/mysql/data 代表MySQL的数据文件路径 3.port = 3 ...

最新文章

  1. JQuery中each()的使用方法说明
  2. Java IO流之文件流
  3. python3源码精要(1)-C源代码取得与基本特征
  4. WordPress的body_class()函数详解
  5. java调用c dll,指针参数和结构体参数搞定
  6. POJ3177 Redundant Paths
  7. Spring基于IOC容器基本原理
  8. android接推流sdk,Android——直播推流SDK
  9. C/C++遍历Windows文件夹下的所有文件
  10. SuseLinux详解(2)——网络设置静态IP 网关 DNS的方法
  11. 目标检测——SSD的学习笔记
  12. 不怕辣眼睛!这个机器人用脸来摘辣椒
  13. mybatis连接池
  14. I.MX6 linux kernel编译错误处理
  15. 【无标题】手机扩容或更换字库后的指纹. 基带. 账号 .解锁等故障分析
  16. h5 前端 PHP,十分钟搞定微信H5支付(ThinkPHP5.1)
  17. 计算机主板CPU接口最多支持,CPU供电接口
  18. 计算机考专硕还是学硕好呢,2021计算机考研选学硕还是专硕?
  19. java全套学习课程
  20. 解决微信小程序内下载视频失败wx.saveVideoToPhotosAlbum :fail invalid video

热门文章

  1. sort()与cmp()
  2. sql加载配置文件时出错:_SQL复制:基本设置和配置
  3. sql server表分区_介绍分区表SQL Server增量统计信息
  4. 2019牛客暑期多校训练营(第七场)-C Governing sand
  5. TypeScript学习笔记(五) - 泛型
  6. Linux操作系统:文件和目录命令
  7. C++之路进阶codevs1242(布局)
  8. C#驱动级模拟按键操作
  9. ODP.NET开发和部署的相关问题
  10. 上海计算机一级填空题,上海市计算机一级考试填空题.doc