MySQLSniffer是个不错的调试工具,在客户端、WebServer端无法有效跟踪特定SQL查询的时候,MySQLSniffer尤其有用。
虽然我们可以打开MySQL的所有SQL语句记录设置,设置方法,在my.cnf的mysqld项下加入:
1 | log=/ var /mysqllog/sql.log |
但是这样做,會记录全部SQL查询,如果网站访问量很大,日志增长也会很快,容易导致硬盘满,也不方便分析SQL语句,同时也会增加数据库服务器负担。而MySQLSniffer可以不必生成日志文件,且可以跟踪特定的SQL查询,所以这时候就是MySQLSniffer发挥作用的时候。
MySQLSniffer安装
1 | yum install libpcap libpcap-devel #需要libpcap支持 |
5 | tar -xvzf mysqlsniffer.tgz |
6 | gcc -O2 -lpcap -o mysqlsniffer mysqlsniffer.c packet_handlers.c misc.c |
7 | cp mysqlsniffer /usr/bin |
MySQLSniffer用法:
01 | mysqlsniffer [OPTIONS] INTERFACE |
04 | --port N Listen for MySQL on port number N ( default 3306) |
05 | --verbose Show extra packet information |
06 | --tcp-ctrl Show TCP control packets (SYN, FIN, RST, ACK) |
07 | --net-hdrs Show major IP and TCP header values |
08 | --no-mysql-hdrs Do not show MySQL header (packet ID and length) |
10 | --v40 MySQL server is version 4.0 |
11 | --dump Dump all packets in hex |
MySQLSniffer信息过滤:
1 | mysqlsniffer eth1 | grep \'COM_QUERY\'
|
No comments:
Post a Comment