如何使用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。