mysqlsniffer
mysqlsniffer是基于TCP/IP网络协议,用来监视mysql性能的tcpdump的mysql版本。mysqlsniffer是用C语言编写的,需要pcap库支持和工作在Mysql 4.0以上版本。mysqlsniffer可以说只是一个特别的mysql网络嗅探器。
如果你对mysql 协议感兴趣的话,可以参考mysql 手册的第七章-MySQL Client/Server Protocol内容。
下载mysqlsniffer源代码
点击链接下载mysqlsniffer 或者在终端用命令下载,如下:
wget hackmysql.com/code/mysqlsniffer.tgz
使用命令"mysqladmin -u root -h 127.0.0.1 processlist"查看MySQL网络协议传输:
mysqlsniffer listening for MySQL on interface lo port 3306 server > 127.0.0.1.3051: ID 0 len 70 Handshake (Caps: Get all column flags, Connect w/DB, Compression, ) 127.0.0.1.3051 > server: ID 1 len 38 Handshake (new auth) <user root db (null) max pkt 1073741824> (Caps: Long password, Get all column flags, LOAD DATA LOCAL, 4.1 protocol, Transactions, 4.1 authentication, ) server > 127.0.0.1.3051: ID 2 len 7 OK (Status: Auto-commit, ) 127.0.0.1.3051 > server: ID 0 len 17 COM_QUERY: show processlist server > 127.0.0.1.3051: ID 1 len 1 8 Fields ID 2 len 24 Field: ..Id ID 3 len 26 Field: ..User ID 4 len 26 Field: ..Host ID 5 len 24 Field: ..db ID 6 len 29 Field: ..Command ID 7 len 26 Field: ..Time ID 8 len 27 Field: ..State ID 9 len 26 Field: ..Info ID 10 len 5 End (Status: Auto-commit, ) ID 11 len 49 || 1 | root | localhost:3051 | NULL | Query | 0 | NULL | show processlist || ID 12 len 5 End (Status: Auto-commit, ) 127.0.0.1.3051 > server: ID 0 len 1 COM_QUIT mysqlsniffer exited cleanly. 17 MySQL packets captured (469 bytes) |