文档章节

MySQL-Binlog解析篇:1 Greeting Packet

强子大叔的码田
 强子大叔的码田
发布于 2015/12/08 11:42
字数 185
阅读 137
收藏 0

正常情况下,连接上某个数据库的3306端口之后,服务器主动发送一个greeting packet.

如图所示:

具体解释如下:

前3个字符为当前报文总长度,小端排序,3个字节

第4个字节为sequence.

因为前面3个字节算出来的长度为78,加上之前的4个字节,所以总长82字节。

正如TCP层所示:82字节。

===至于后面具体解析的内容,可以参考代码:

public GreetingPacket(byte[] bytesthrows IOException {

        ByteArrayInputStream buffer = new ByteArrayInputStream(bytes);

        this.protocolVersion = buffer.readInteger(1);

        this.serverVersion = buffer.readZeroTerminatedString();

        this.threadId = buffer.readLong(4);

        String scramblePrefix = buffer.readZeroTerminatedString();

        this.serverCapabilities = buffer.readInteger(2);

        this.serverCollation = buffer.readInteger(1);

        this.serverStatus = buffer.readInteger(2);

        buffer.skip(13); // reserved

        this.scramble = scramblePrefix + buffer.readZeroTerminatedString();

        if (buffer.available() > 0) {

            this.pluginProvidedData = buffer.readZeroTerminatedString();

        }

    }

这个很简单,就不解释了。 

© 著作权归作者所有

强子大叔的码田

强子大叔的码田

粉丝 910
博文 1439
码字总数 1221048
作品 9
南京
架构师
私信 提问
Dive into MySQL Replication

Dive into MySQL Replication Siddon's Blog2015-03-28131 阅读 mysql Dive into MySQL replication protocol Preface Let’s consider following scenario, we store huge data in MySQL an......

Siddon's Blog
2015/03/28
0
0
mysql配置文件my.cnf

[client] port = 3306 socket = /usr/local/mysql/mysql.sock default-character-set = utf8 [mysql] no-auto-rehash default-character-set = utf8 [mysqld] socket = /usr/local/mysql/mys......

zzjiwang
2016/11/12
0
0
Mysql slave error

140109 15:13:13 [Note] Slave: received end packet from server, apparent master shutdown: 140109 15:13:13 [Note] Slave I/O thread: Failed reading log event, reconnecting to retry......

丶永夜
2015/03/13
0
0
MySQL生产库中添加修改表字段引起主从崩溃的问题总结

上周末和开发人员对线上库中的部分表的在线DDL和update,这过程中出现了一些意料之外的问题,现将过程、分析和解决方案在这里总结一下 一、 需求背景: 要在如下表中添加字段(modified_at)并...

andylhz
2016/10/12
0
0
如何通过Mysql的二进制日志恢复数据库数据

经常有网站管理员因为各种原因和操作,导致网站数据误删,而且又没有做网站备份,结果不知所措,甚至给网站运营和盈利带来负面影响。所以本文我们将和大家一起分享学习下如何通过Mysql的二机...

it1000001001
2017/04/17
343
1

没有更多内容

加载失败,请刷新页面

加载更多

好程序员大数据教程分享Scala系列之模式匹配和样例类

好程序员大数据教程分享Scala系列之模式匹配和样例类 1.样例类 在Scala中样例类是一中特殊的类,样例类是不可变的, 可以通过值进行比较,可用于模式匹配。 定义一个样例类: 构造器中每一个...

好程序员官网
22分钟前
4
0
让nginx上的静态网页在访问的时候没有html后缀

需求背景: 公司产品小姐姐觉得这个访问带html后缀不专业,要求访问不带html后缀 nginx 配置 #原配置 location / { index index.html index.htm index.php; try_files $...

Linux_Anna
22分钟前
4
0
beetl的内置函数

函数调用Beetl内置函数请参考附录,以下列出了常用的函数date 返回一个java.util.Date类型的变量,如 date() 返回一个当前时间(对应java的java.util.Date); ${date( "2011-1-1" , "yy...

gantaos
23分钟前
4
0
spring cloud 2.x版本 Gateway自定义过滤器教程

前言 本文采用Spring cloud本文为2.1.8RELEASE,version=Greenwich.SR3 [toc] 本文基于前两篇文章eureka-server、eureka-client、eureka-ribbon、eureka-feign和spring-gataway的实现。 参考......

毛毛向前冲V5
26分钟前
4
0
VPGAME 的 Kubernetes 迁移实践

作者 | 伍冲斌 VPGAME 运维开发工程师 导读:VPGAME 是集赛事运营、媒体资讯、大数据分析、玩家社群、游戏周边等为一体的综合电竞服务平台。总部位于中国杭州,在上海和美国西雅图分别设立了...

阿里巴巴云原生
32分钟前
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部