我如何使用 WireShark 嗅探 MySQL 数据?我也使用了“mysqlsniffer”,但没有结果。没有任何来自 MySQL 的数据包。我在 WireShark 中通过“MySQL.isPresent”进行了过滤,但什么也没发生。
MySQL 从存储库安装在 Ubuntu 10.10 上。这是 my.conf:http://pastebin.com/jkJU773E
我也可以 telnet 到 MySQL:
halo@desktop:~$ telnet localhost 3306
Trying ::1...
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
?
5.1.49-1ubuntu8.1�otw|(N2iL~Vsam~Sbr9
^CConnection closed by foreign host.
halo@desktop:~$
答案1
默认情况下,在 localhost 上,mysql 实际上通过 UNIX 套接字进行连接。添加-h 127.0.0.1
到mysql
行中以强制通过 TCP 进行通信。
答案2
你确定你嗅探的是正确的接口吗?如果你像示例中那样在本地连接,则应该连接到环回接口 ( lo
),而不是eth0
任何其他eth*
。
我不知道 MySQL.isPresent,你试过过滤 tcp 端口 3306 吗?真的应该足够了。
另外,您也可以使用命令行上的 tcpdump 捕获流量,然后使用 wireshark 打开转储文件:
tcpdump -nli lo port 3306 -s 0 -w mysql.dump
wireshark mysql.dump
如果需要,请将 lo 替换为 eth0 等。