mysql 二进制 存储格式化_解析MYSQL BINLOG 二进制格式(2)--FORMAT_DESCRIPTION_EVENT

原创:转载请说明出处谢谢!

上接

http://blog.itpub.net/7728585/viewspace-2133188/

参考源:

1、源码log_event.h log_event.cc

2、internals-en.epub

class:Format_description_log_event

event:FORMAT_DESCRIPTION_EVENT

mysql 5.0后所有的binlog 文件都是以FORMAT_DESCRIPTION_EVENT(FED) event开始的,其typecode=15

及0X0F

它的格式为:

1、fixed data part

2 bytes:binlog 的格式版本,我们看到5.6,5.7肯定都是v4

50 bytes:这是一个固定50字节的字符串,显示了mysql server的版本,用0X00补足

也就是第一个0X00表示结尾

4 bytes: 这4个字节文档上说是冗余的,在event header显示,这里看到全是0X00

1 bytes:这个字节直接说明了我们event header的长度,V4为19

var-size:这些字节由已经定义的event的个数定义5.6,5.7为40个,也就是40个字节

说明了他们fixed data(posted header)的长度

2、variable data

我们来解析一个实际的二进制格式文件

00000000  fe 62 69 6e bc df 98 58  0f 01 00 00 00 77 00 00  |.bin...X.....w..|

00000010  00 7b 00 00 00 00 00 04  00 35 2e 37 2e 31 34 2d  |.{.......5.7.14-|

00000020  37 2d 64 65 62 75 67 2d  6c 6f 67 00 00 00 00 00  |7-debug-log.....|

00000030  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|

00000040  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 13  |................|

00000050  38 0d 00 08 00 12 00 04  04 04 04 12 00 00 5f 00  |8............._.|

00000060  04 1a 08 00 00 00 08 08  08 02 00 00 00 0a 0a 0a  |................|

00000070  2a 2a 00 12 34 00 01 55  88 2c 87

mysqlbinlog输出为:

# at 4

#170207  4:42:36 server id 1  end_log_pos 123 CRC32 0x872c8855  Start: binlog v 4, server v 5.7.14-7-debug-log created 170207  4:42:36

BINLOG '

vN+YWA8BAAAAdwAAAHsAAAAAAAQANS43LjE0LTctZGVidWctbG9nAAAAAAAAAAAAAAAAAAAAAAAA

AAAAAAAAAAAAAAAAAAAAAAAAEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA

AVWILIc=

'/*!*/;

fe 62 69 6e:binlog开头魔法数 4字节

event header

bc df 98 58:timestamp,小端显示,及0X5898DFBC十进制1486413756,用命令

[root@testmy mysqld.1]# date -d'@1486413756'

Tue Feb  7 04:42:36 CST 2017

可以看见时间和mysqbinlog解析的一致4:42:36

0f:event_type为15

01 00 00 00:service_id,小端显示 0X00000001及1

mysql> show variables like 'server_id';

+---------------+-------+

| Variable_name | Value |

+---------------+-------+

| server_id     | 1     |

+---------------+-------+

和mysqlbinlog中的server id 1也是一致的

77 00 00 00:event长度及0X00000077及119,刚好是下一个event 123-4(魔法数)=119

7b 00 00 00:下一个event位置0X0000007b及123,和mysqlbinlog解析的end_log_pos 123一致

00 00:flags,如果为0X0001那么会在MYSQLBINLOG输出中报一个警告说本binlog没有关闭

04 00:binlog 版本,小端显示及0X0004,和mysqlbinlog中的解析Start: binlog v 4一致

35 2e 37 2e 31 34 2d 37  2d 64 65 62 75 67 2d 6c

6f 67 00 00 00 00 00 00  00 00 00 00 00 00 00 00

00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00

00 00 :

这部分就是50字节的字符串了其ASCII值是5.7.14-7-debug-log和mysqlbinlog中的解析

server v 5.7.14-7-debug-log一致

00 00 00 00:冗余的timestamp,全是0X00

13 38 0d 00 08 00 12 00  04 04 04 04 12 00 00 5f

00 04 1a 08 00 00 00 08  08 08 02 00 00 00 0a 0a

0a 2a 2a 00 12 34 00 01:

这部分是一个数组,表现了已知的40个event的fixed data(posted header)的长度

打个比方说0a 0a 0a 这里刚好array[30],array[31],array[32](C语言以[0]作为数

组的开始)就是我们最要的

WRITE_ROWS_EVENT

UPDATE_ROWS_EVENT

DELETE_ROWS_EVENT

的fixed data(posted header)的长度0X0A也就是10,以后会详细解释

55 88 2c 87: CRC32校验位,小端显示及0X872C8855和mysqlbinlog中的CRC32 0x872c8855一致

到这里FORMAT_DESCRIPTION_EVENT解析完毕

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7728585/viewspace-2133189/,如需转载,请注明出处,否则将追究法律责任。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498689.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java mysql访问类_java 访问数据库公共类

package com.javaweb.mvc;import java.util.ArrayList;import java.util.List;import java.sql.*;/*** author 数据访问类**/public classServiceStationDao {/*** return 查询所有服务站**/public ListgetAll() {List list new ArrayList();Connection conn null;PreparedSta…

Nature:原来记忆是这样形成的!科学家发现记忆形成新机制

来源:神经科技概要:神经元之间通过突触传递信息,大约50年前科学家们发现了突触的可塑性,科学界也一直认为突触是记忆和学习过程中的一个重要的功能组成部分。来自法国的研究人员最近发现了突触储存信息和控制信息储存过程的一个新…

hive mysql远程模式_Hive远程模式启动

1、配置远程服务器MYSQL,并保证远程可以访问2、$HIVE_HOME/conf/hive-site.xml 关键配置如下hive.metastore.localfalsecontrols whether to connect to remove metastore server or open a new metastore server in Hive Client JVMjavax.jdo.option.ConnectionURL…

腾讯 AI Lab副主任俞栋:过去两年基于深度学习的声学模型进展

来源:腾讯AI Lab概要:过去几年里,自动语音识别(ASR)已经取得了重大的进步 。这些进步让 ASR 系统越过了许多真实场景应用所需的门槛,催生出了 Google Now、微软小娜和亚马逊 Alexa 等服务。1. 引言过去几年…

python计算汉明距离_20190503-汉明距离

难度分类 简单 题目描述 两个整数之间的汉明距离指的是这两个数字对应二进制位不同的位置的数目。给出两个整数 x 和 y,计算它们之间的汉明距离 注意: 0 ≤ x, y < 231. 示例: 输入: x = 1, y = 4 输出: 2 解释: 1 (0 0 0 1) 4 (0 1 0 0) ↑ ↑ 上面的箭头指出了对应…

王劲首度解析景驰:我们是跑得最快的无人驾驶公司

来源&#xff1a;AI世代概要&#xff1a;9月14日&#xff0c;在景驰科技天使轮投资方之一华创资本组织的分享会上&#xff0c;王劲以景驰科技创始人兼首席执行官的身份&#xff0c;发表了主题为“无人驾驶的大国冲刺”的演讲。创业近半年后&#xff0c;王劲带着景驰最新的发展成…

mysql 5.7安装完密码是多少_关于mysql5.7.18的安装并修改初始密码的图文教程

这篇文章主要为大家详细介绍了Mysql5.7安装并修改初始密码的方法&#xff0c;具有一定的参考价值&#xff0c;感兴趣的小伙伴们可以参考一下Centos 安装MySQL可以参考之前写的一篇文章Centos7.3 安装Mysql5.7并修改初始密码windows安装mysql5.7有两种方式1、下载.msi安装文件直…

化解谷歌AI霸权的另一种思路?开发平台的生态围剿

来源&#xff1a; 脑极体概要&#xff1a;无论是学界还是巨头&#xff0c;都只能给出规则和参考&#xff0c;以及一小部分示例性应用&#xff0c;而最终让人工智能落地产生价值的&#xff0c;只能是成千上万脑中闪过鬼点子的开发者。相较移动互联网&#xff0c;AI将是一个更激进…

mysql sayhello的函数_Euphoria 函数

Euphoria 函数和过程是一样的&#xff0c;但它们返回一个值&#xff0c;并且可以在表达式中使用。本节将解释你如何在Euphoria 中编写自己的函数。函数定义:在我们使用一个函数之前&#xff0c;我们需要定义这个函数。最常用的方法是使用function关键字定义一个函数&#xff0c…

波士顿咨询联手MIT发布万字人工智能报告,详解企业如何跨越“AI应用鸿沟”

来源&#xff1a;机器人圈概要&#xff1a;AI可以帮助人们预测就业市场接下来的变动&#xff0c;发现&#xff08;并满足&#xff09;新的培训劳动力的需求&#xff0c;以此缓冲它自身及其他因素造成的影响。人们对人工智能&#xff08;AI&#xff09;抱有极高的期待&#xff0…

工信部:2017工业物联网白皮书

来源&#xff1a;199IT互联网数据中心概要&#xff1a;目前&#xff0c;物联网进入与传统产业深度融合发展的崭新阶段&#xff0c;工业制造领域的转型升级成为工业物联网发展的重要驱动力&#xff0c;世界各国纷纷发布相关的战略举措&#xff0c;抢占新一轮发展战略机遇。目前&…

从共享单车看城市云反射弧的工作运行机制

作者&#xff1b;刘锋&#xff0c;黄子铜概要&#xff1a;智能时代&#xff0c;我们的城市从架构上也越来越类脑化&#xff0c;从运转上变得越来越智慧&#xff0c;共享单车基于物联网技术&#xff0c;很便捷地解决了最后一公里的需求&#xff0c;是城市云脑中云反射弧在交通领…

python函数做n_简单Python函数的O(N)时间复杂性

我刚做了一个Codibility演示测试。question and my answer can be seen here&#xff0c;但我也会把我的答案贴在这里。我的回答是&#xff1a;def solution(A):# write your code in Python 2.7retresult 1; # the smallest integer we can return, if it is not in the arra…

AI 热潮之下,初创企业能否躲过科技巨头的碾压?

来源&#xff1a;AIis概要&#xff1a;人工智能&#xff08;AI&#xff09;是当下的流行语&#xff0c;AI 相关的初创企业纷纷涌现&#xff0c;大型科技巨头也频频采取相关动作&#xff0c;走在 AI 的前沿。全世界的科技巨头们要小心了。人工智能&#xff08;AI&#xff09;是当…

mysql先删后增并发时出现死锁_MySQL死锁案例分析一(先delete,再insert,导致死锁)...

一、死锁案例MySQL版本&#xff1a;Percona MySQL Server 5.7.19隔离级别&#xff1a;可重复读(RR)业务逻辑&#xff1a;并发下按某个索引字段先delete记录&#xff0c;再insert记录比如&#xff1a;begin;delete from tb where order_id xxx;insert into tb(order_id) values…

神经科学领域重大突破,港大科学家揭海马体新功能

来源&#xff1a;神经科技概要&#xff1a;香港大学研究团队在神经科学领域取得重大突破&#xff0c;揭示大脑中一个重要区域 — 海马体的新功能。香港大学研究团队在神经科学领域取得重大突破&#xff0c;揭示大脑中一个重要区域 — 海马体的新功能。团队发现&#xff0c;海马…

python移动平均线绘图_对python pandas 画移动平均线的方法详解

数据文件 66001_.txt 内容格式&#xff1a;date,jz0,jz1,jz2,jz3,jz4,jz52012-12-28,0.9326,0.8835,1.0289,1.0027,1.1067,1.00232012-12-31,0.9435,0.8945,1.0435,1.0031,1.1229,1.00272013-01-04,0.9403,0.8898,1.0385,1.0032,1.1183,1.0030... ...pd_roll_mean1.py# -*- cod…

年度最理性 AI 分析文章:预测 AI 未来,大部分人陷入了 7 大误区

来源&#xff1a;36氪概要&#xff1a;错误的预测会导致大家对不会发生的事情感到恐惧。为什么在人工智能和机器人的预测上总有人不断犯错呢&#xff1f;想着预测未来&#xff0c;却一不小心就陷入了yy。近年来图像识别突破、Waymo无人车上路、Alphago战胜人类冠军等AI的一些标…

python算24点穷举法_关于24点去重的算法?

4月12日更新 先给结论吧 花了近一周时间用JavaScript完成了24点去重算法&#xff0c;源码提交到了github上&#xff1a;auntyellow/24 &#xff0c;可以在线试&#xff1a;gives you all dissimilar solutions.在1到13范围内的四数组合中&#xff0c;不重复解最多的组合是2、4…

为什么当今的企业都需要人工智能战略?

来源&#xff1a;腾股创投概要&#xff1a;人工智能&#xff08;AI&#xff09;从根本上改变了所有行业的企业的运营&#xff08;包括制造业&#xff0c;医疗健康&#xff0c;信息技术和运输业&#xff09;。今后5年&#xff0c;会有一些标普500强CEO 后悔没有早点考虑自己的 A…