MySQL Sniffer 是360开源的一个基于 MySQL 协议的抓包工具, 能实时抓取客户端端请求,并格式化输出操作语句,操作十分简单。
对于问题的定位,操作的审核是个不错的利器。

Github地址:https://github.com/Qihoo360/mysql-sniffer

安装

# yum install glib2-devel libpcap-devel libnet-devel
# unzip mysql-sniffer-master.zip
# cd mysql-sniffer-master
# cmake .

-- Configuring done
-- Generating done
-- Build files have been written to: /root/mysql-sniffer-master

# make

Scanning dependencies of target mysql-sniffer
[ %] Building C object bin/CMakeFiles/mysql-sniffer.dir/main.c.o
[ %] Building C object bin/CMakeFiles/mysql-sniffer.dir/mysql-dissector.c.o
/root/mysql-sniffer-master/src/mysql-dissector.c: In function ‘decode_mysql_lenenc_int’:
/root/mysql-sniffer-master/src/mysql-dissector.c:: warning: dereferencing type-punned pointer will break strict-aliasing rules
[ %] Building C object bin/CMakeFiles/mysql-sniffer.dir/util.c.o
[ %] Building CXX object bin/CMakeFiles/mysql-sniffer.dir/session.cpp.o
[ %] Building CXX object bin/CMakeFiles/mysql-sniffer.dir/sniff-config.cpp.o
[%] Building CXX object bin/CMakeFiles/mysql-sniffer.dir/sniff-log.cpp.o
Linking CXX executable mysql-sniffer
[%] Built target mysql-sniffer

# cd bin/

# ls

CMakeFiles  cmake_install.cmake  Makefile  mysql-sniffer

参数说明

参数说明也是简明易懂。

# ./mysql-sniffer -help
Usage ./mysql-sniffer [-d] -i eth0 -p ,, -l /var/log/mysql-sniffer/ -e stderr
[-d] -i eth0 -r -
-d daemon mode.
-s how often to split the log file(minute, eg. ). if less than , split log everyday
-i interface. Default to eth0
-p port, default to . Multiple ports should be splited by ','. eg. ,
this option has no effect when -f is set.
-r port range, Don't use -r and -p at the same time
-l query log DIRECTORY. Make sure that the directory is accessible. Default to stdout.
-e error log FILENAME or 'stderr'. if set to /dev/null, runtime error will not be recorded
-f filename. use pcap file instead capturing the network interface
-w white list. dont capture the port. Multiple ports should be splited by ','.
-t truncation length. truncate long query if it's longer than specified length. Less than 0 means no truncation
-n keeping tcp stream count, if not set, default is . if active tcp count is larger than the specified count, mysql-sniffer will remove the oldest one

示例

# ./mysql-sniffer -i eth0 -p 3306

其中,倒数第二列是返回数据的行数。

-- ::     root     192.168.244.20     NULL              0ms                   select @@version_comment limit
-- :: root 192.168.244.20 NULL 0ms select USER()
-- :: root 192.168.244.20 NULL 0ms select
-- :: root 192.168.244.20 NULL 0ms SELECT DATABASE()
-- :: root 192.168.244.20 test 24ms use test
-- :: root 192.168.244.20 test 172ms show databases
-- :: root 192.168.244.20 test 0ms show tables
-- :: root 192.168.244.20 test 0ms show tables
-- :: root 192.168.244.20 test 58ms select * from test1
-- :: root 192.168.244.20 test 0ms SELECT DATABASE()
-- :: root 192.168.244.20 test 0ms use test

注意

1. 只能抓取新建的链接,如果是之前创建的链接将获取不到用户名和库名,并有一定几率丢包。

2. 如果客户端是在本地,如果走的是tcp连接的话,如mysql -h 192.168.244.10 -uroot -p123456,其中192.168.244.10是本地主机ip,
    则只能通过回环地址来捕捉,./mysql-sniffer -i lo -p 3306

参考

https://github.com/Qihoo360/mysql-sniffer/blob/master/README_CN.md

MySQL Sniffer的更多相关文章

  1. MySQL抓包工具:MySQL Sniffer【转】

    本文来自:https://github.com/Qihoo360/mysql-sniffer 简介 MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer ...

  2. Mysql抓包工具 - MySQL Sniffer 使用小结 (含带general_log日志)

    在mysql运维工作中,一般会使用tcpdump做一些分析(直接读分析日志比较难以看明白,在数据库连接值高时使用):对于mysql实时的连接监控分析,通常会使用"mysqladmin/sho ...

  3. MySQL抓包工具:MySQL Sniffer 和性能优化

    简介 MySQL Sniffer 是一个基于 MySQL 协议的抓包工具,实时抓取 MySQLServer 端的请求,并格式化输出.输出内容包访问括时间.访问用户.来源 IP.访问 Database. ...

  4. 0818基于360开源数据库流量审计MySQL Sniffer

    开源数据库流量审计MySQL Sniffer 我最推崇的数据库安全产品就是基于流量的数据库审计,因为它不需要更改网络结构,并且也是最关键的是,不影响数据库服务器性能,不用苦口婆心的劝数据库管理员安装监 ...

  5. 抓包:MySQL Sniffer

    1.依赖文件安装 依赖glib2-devel.libpcap-devel.libnet-devel [root@VMUest ~]# yum install cmake [root@VMUest ~] ...

  6. MySQL、Redis、MongoDB网络抓包工具

    简介 go-sniffer 可以抓包截取项目(MySQL.Redis.MongoDB)中的请求并解析成相应的语句,并格式化输出.类似于在之前的文章 MySQL抓包工具:MySQL Sniffer[转] ...

  7. 万答#21,如何查看 MySQL 数据库一段时间内的连接情况

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源. 查看方式 已知至少有两种方式可以实现 1.开启 general_log 就可以观察到 开启命令 mysql> set ...

  8. mysql监视器MONyog的使用

    MONyog是个商业收费软件,可是能够找一下破解版.我用的是4.72破解版 1.       图1.1 在server设置中,如图1.1. 在Sniffer Settings里Enable sniff ...

  9. MySQL数据库密码破解

    研究MySQL数据库的加解密方式,在网络攻防过程中具有重要的意义:试想一旦获取了网站一定的权限后,如果能够获取MySQL中保存用户数据,通过解密后,即可通过正常途径来访问数据库:一方面可以直接操作数据 ...

随机推荐

  1. YII 1.0 上传文件

    $upload = CUploadedFile::getInstance($articleModel,'thumb'); if($upload){ $name = date("Ymd&quo ...

  2. iconfont.cn阿里巴巴矢量图下载字体图标实战

    1.阿里巴巴矢量图网址:www.iconfont.cn 2.然后用新浪微博账号登录 3.输入要查找的图标相应的关键字,回车 4.滑过要找的图标,点击购物车,让图标存储到暂存架中 5.点击暂存架,存储为 ...

  3. 2.2. 添加托管对象模型(Core Data 应用程序实践指南)

    右键分组Grocery Dude > New Group > Data Model New File > Core Data > 创建新的模板文件

  4. 第一部分 代码组织概念,集成开发环境(IDE)

    代码组织概念 主要是代码文件,项目和解决方案. 解决方案(.sln)包含多个项目(.csproj),一个项目又包含多个文件(.cs). 集成开发环境(IDE): 由编辑.编译.调试,以及用户图形界面, ...

  5. ASP.NET速度优化

    用过ASP.NET的人都知道吧,页面首次打开很慢,本来网站第一次启动就慢,但别的页面如果没有访问过的第一次访问也会慢. 原因:asp.net程序第一次运行需要验证数字签名,这个验证需要远程连接微软服务 ...

  6. 使用SpringMvc调用POI jar导出excel的源码

    @RequestMapping(value = "/result/export") public String export(ResultIn in,HttpServletRequ ...

  7. 数据结构(Java描述)之二叉树

    基础概念 二叉树(binary tree)是一棵树,其中每个结点都不能有多于两个儿子. 二叉排序树或者是一棵空树,或者是具有下列性质的二叉树: (1)若左子树不空,则左子树上所有结点的值均小于或等于它 ...

  8. 报表学习总结(一)——ASP.NET 水晶报表(Crystal Reports)的简单使用

    一.水晶报表简介 Crystal Reports(水晶报表)是一款商务智能(BI)软件,主要用于设计及产生报表.水晶报表是业内最专业.功能最强的报表系统,它除了强大的报表功能外.最大的优势是实现了与绝 ...

  9. session工作原理简介

    session是什么 首先,我们需要知道session是什么.有比较专业的人将session称之为会话控制.说实在的,如果这么说的话,我也不清楚session到底算是什么. 其实session是一个存 ...

  10. springmvc注解式事务手动回滚

    Spring的AOP事务管理默认是针对unchecked exception回滚(运行期异常,Runtime Exception),如果希望手动控制事务的回滚,可以通过 TransactionAspe ...