WireShark问题(MySQL嗅探)

如何使用WireShark来嗅探MySQL数据? 另外我用«mysqlsniffer»没有结果。 没有任何来自MySQL的数据包。 我在WireShark中通过“MySQL.isPresent”过滤,但没有发生任何事情。

从库中安装在Ubuntu 10.10上的MySQL。 这里是my.conf: http ://pastebin.com/jkJU773E

另外我可以telnet到MySQL:

晕@桌面:〜$ telnet localhost 3306
尝试:: 1 ...
尝试127.0.0.1 ...
连接到本地主机。
转义字符是'^]'。
 ?
 5.1.49-1ubuntu8.1otw |(N2iL〜VSAM〜Sbr9
 ^由外国主机closures的CC连接。
晕@桌面:〜$ 

默认情况下,在本地主机上,mysql实际上是通过UNIX套接字连接的。 将-h 127.0.0.1添加到你的mysql行来强制通过TCP进行通信。

你确定你正在嗅探正确的界面吗? 如果你在本地连接,你应该连接到loopback接口( lo ),而不是eth0或其他eth*

我不知道MySQL.isPresent,你有没有尝试过滤TCP端口3306? 应该够了,真的。

或者,您可以在命令行上使用tcpdump捕获stream量,然后使用wireshark打开转储文件:

 tcpdump -nli lo port 3306 -s 0 -w mysql.dump wireshark mysql.dump 

如果需要,用eth0replace。