navicat 和 mysql 是一对好基友,每天都有非常频繁的交流,主人在navicat上写下每条sql语句,轻轻的点了下执行按钮,navicat就飞快的把主人的指令传送到mysql那里,mysql立马把返回结果传回navicat那里显示给主人看.主人对他们的效率很满意,同时主人也有点好奇:你们两个基友是怎么通讯的呢?如果不通过navicat,我用程序直接和mysql交互该怎么做呢? mysql 笑道:这是我们之间的秘密... navicat有点不开心了:难道主人想抛弃我吗?呜呜呜... 主人…
MySQL协议分析 标签: mysql 2015-02-27 10:22 1807人阅读 评论(1) 收藏 举报  分类: 数据库(19)    目录(?)[+]   1 交互过程 MySQL客户端与服务器的交互主要分为两个阶段:握手认证阶段和命令执行阶段. 1.1 握手认证阶段 握手认证阶段为客户端与服务器建立连接后进行,交互过程如下: 服务器 -> 客户端:握手初始化消息 客户端 -> 服务器:登陆认证消息 服务器 -> 客户端:认证结果消息 1.2 命令执行阶段 客户端认证成功后,…
MySQL协议分析(2) 此阶段是在压缩传输无加密条件下进行的协议分析 思路 结合Oracle官网的说明和自己用wireshark加python进行数据包分析 步骤 客户端与服务器端是否压缩的协商阶段 压缩传输的数据包格式 数据包解压缩分析过程 压缩协商阶段 首先,用户发起连接数据库的请求,并添加了压缩的参数-C进行传输,此时在网络中TCP建立后,服务器端会给客户端一个Greeting,其中包括了服务器端的MySQL版本.协议版本.支持的能力(其中就包括是否支持压缩)等. 然后,客户端会发送给服…
MySQL协议分析 此阶段的协议分析是在未压缩未加密情况下的协议分析 思路: 结合Oracle官网和自己用wireshark抓的网络数据包进行协议分析 官网说明 mysql包共分为4段,格式如下: 第一段:payload(通常是执行的SQL语句)的长度占3字节: 第二段:序列id占1字节: 第三段:payload类型占1字节: 第四段:payload内容占n字节,n为第一段描述的长度. wireshark抓包分析验证 0000 1a 00 00 00 03 73 65 6c 65 63 74 2…
MySQL协议分析 议程 协议头 协议类型 网络协议相关函数 NET缓冲 VIO缓冲 MySQL API 协议头 ● 数据变成在网络里传输的数据,需要额外的在头部添加4 个字节的包头. . packet length(3字节), 包体的长度 . packet number(1字节), 从0开始的递增的 ● sql “” 的网络协议是? 协议头 ● packet length三个字节意味着MySQL packet最大16M大于16M则被分包(net_write_command, my_net_wr…
综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql官方的internal manual,并用Wireshark同时进行验证.在实现的过程中,当然踩了很多坑,这里记录一下,算是对协议分析的一个总结. 需要注意的是,mixer并没有支持所有的mysql协议,譬如备份,存储过程等,主要在于精力有限,同时也为了实现简单. 数据类型 mysql协议只有两种基…
主人看到navicat和mysql在那嘻嘻哈哈,眉来眼去的,好不快乐,忽然也想自己写个程序,直接去访问Mysql,虽然现在已经有很多现成的中间件可以直接拿来用了,程序只要负责写sql语句就行了,但是主人想要自己通过mysql协议直接和mysql通讯,一窥究竟.于是主人找到Mysql说:亲爱的mysql,我以前和你交流总要通过第三方的驱动在中间传话,总感觉我们之间还有一个隔阂,有些话也不方便说,我现在有些心里话想直接和你交流...你说行吗? mysql说:当然行啊,mysql受宠若惊,要和我打交道…
MYSQL Binlog协议分析 此处不讨论建立连接,验证和handshake的交互协议 Binlog协议 一个MYSQL 通信包由包头包体组成 包体根据具体的交互协议有自身的组成结构, 在binlog消息体组成结构如下 +=====================================+ | event  | timestamp         0 : 4    | | header +----------------------------+ |        | type_cod…
前言 如果要在命令行中连接mysql,最常用的便是 mysql -u root -p 这样指定用户名和密码 当然还可以使用远程连接 mysql -h 127.0.0.1 -u root -p 还有一种较为少见的,使用ssl来连接 mysql -h 127.0.0.1 -u root --ssl=on -p 既然可以远程连接,那么数据必定要从网上流通.那就必然要面临安全问题,mysql是怎么解决的呢? 前期设置 既然要研究mysql远程连接时的通信过程,那么首先要开启mysql的远程连接功能 如果…
分析所用软件下载:Wireshark-win32-1.10.2.exe 一.阅读导览 1.分析FTP协议 2.分析DNS协议 3. 分析HTTP协议 二.分析要求 (1)ftp部分: 学习 Serv-U FTP Server 服务软件的基本配置和FTP 客户端命令的使用 设计应用以获取ftp报文 分析ftp报文的格式与内容(分析至少5个报文,并理解它们之间的关系) 观察 FTP 协议的工作过程,分析FTP 客户是以 PORT 模式还是 PASV 模式连接服务器,观察两种连接 的建立过程和释放过程…