Mysql 协议嗅探】的更多相关文章

需求 监听通过网卡的所有mysql流量,进行解析,可在不影响现有业务情况下,进行入侵检测(IDS)或数据集成 协议要点 起初发现 用mysql-front访问数据库和mysql 的客户端访问时数据包格式不同,纠结很久,不明白,mysql-front源码看了眼,delphi,不懂,弃 压缩解析 当链接mysql时,若启用-C参数表示,对于连接数据启用压缩,压缩格式为zlib mysql的压缩函数为: // mysql-source/mysys/my_compress.c my_bool my_co…
一.简介 Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目.它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性.目前该项目在360公司内部得到了广泛应用,很多MySQL业务已经接入了Atlas平台,每天承载的读写请求数达几十亿条. 主要功能: 1.读写分离 2.从库负载均衡 3.IP过滤 4.自动分表 5.DBA可平滑上下线DB 6.自动摘除宕机的DB 二.Atlas相对于官方…
MySQL协议分析 标签: mysql 2015-02-27 10:22 1807人阅读 评论(1) 收藏 举报  分类: 数据库(19)    目录(?)[+]   1 交互过程 MySQL客户端与服务器的交互主要分为两个阶段:握手认证阶段和命令执行阶段. 1.1 握手认证阶段 握手认证阶段为客户端与服务器建立连接后进行,交互过程如下: 服务器 -> 客户端:握手初始化消息 客户端 -> 服务器:登陆认证消息 服务器 -> 客户端:认证结果消息 1.2 命令执行阶段 客户端认证成功后,…
[编者按]TiDB 是国内 PingCAP 团队开发的一个分布式 SQL 数据库.其灵感来自于 Google 的 F1,TiDB 支持包括传统 RDBMS 和 NoSQL 的特性.在国内 ITOM 管理平台 OneAPM 举办的技术公开课中,TiDB 的高级工程师刘奇从 HBase 特性.TiDB 的优势和系统架构等方面进行了详细阐述.以下为演讲整理: HBase 简介 众所周知,在 SQL 方面处于顶级的有两个公司,一个是 Oracle,他们已经积累了大量的经验,另一个是谷歌,谷歌 F1 在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 Client/Server协议 准确的说应该是MySQL Client/Server协议,另一个叫X Protocol的暂不涉及.地址如下:MySQL Client/Server Protocol 字节序 一般协议里说的字节序是指网络字节序,网络字节序是big endian.而MySQL协议把主机字节序传输到网络上,使用little endian作为网络字节序,这点需要注意一下.关于字节序可以参考:理解字节序 Wireshark 做协议开发,使用wireshark可以大大提高生产力,…
综述 要实现一个mysql proxy,首先需要做的就是理解并实现mysql通讯协议.这样才能通过proxy架起client到server之间的桥梁. mixer的mysql协议实现主要参考mysql官方的internal manual,并用Wireshark同时进行验证.在实现的过程中,当然踩了很多坑,这里记录一下,算是对协议分析的一个总结. 需要注意的是,mixer并没有支持所有的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的远程连接功能 如果…
MySQL协议分析(2) 此阶段是在压缩传输无加密条件下进行的协议分析 思路 结合Oracle官网的说明和自己用wireshark加python进行数据包分析 步骤 客户端与服务器端是否压缩的协商阶段 压缩传输的数据包格式 数据包解压缩分析过程 压缩协商阶段 首先,用户发起连接数据库的请求,并添加了压缩的参数-C进行传输,此时在网络中TCP建立后,服务器端会给客户端一个Greeting,其中包括了服务器端的MySQL版本.协议版本.支持的能力(其中就包括是否支持压缩)等. 然后,客户端会发送给服…