2017-04-03 47 views
0

我试图在Windows上使用Wireshark通过我的web应用程序和MySQL服务器捕获MySQL活动。我已经看到关于捕获与MySQL有关的数据包的大多数问题都会返回MySQL协议,并且可能会看到发送的查询及其响应。然而,在运行Wireshark并使用我的应用程序时,我只能看到TCP数据包来了,这可以从下面的链接中看到。来自TCP而不是MySQL协议的MySQL查询

TCP Packet -> Src - Dst

Inside TCP Packet

要注意,我用像tshark的和WinDump的工具,通过网络收集的数据包是很重要的,但是毫无效果。

我做错了什么或者是Wireshark的错误?


感谢您的回答! 我按照编辑 - >首选项 - >协议 - > MySQL做了Christopher建议的操作。有没有像“端口号”,但问题是没有选择“在INFO列中显示SQL查询字符串”。

+0

[如何使用wireshark捕获mysql查询sql清楚]可能的重复(http://stackoverflow.com/questions/38167587/how-to-use-wireshark-to-capture-mysql-query-sql-clearly ) –

+0

他在linux上,不是吗?我以前去过那个帖子,但它还没有解决我的问题。 –

+0

你不需要使用wireshark .. mysql协议写在文档中https://dev.mysql.com/doc/internals/en/client-server-protocol.html –

回答

0

提供的image表示正在使用的端口是3307,但MySQL解析器默认在port 3306上注册,即IANA-registered端口的mysql流量。因此,当使用非标准端口时,您必须利用Wireshark的“解码为”功能,因为nnovich-OK已经提到。

很多情况下的另一种选择,不幸的是在这种情况下还不可用,它是更改解析器注册的端口号。尽管如此,MySQL解析器并不提供端口首选项,但您可以打开一个要求添加这样一个首选项的Wireshark bug report - 如果您实际实现它,则更好。一旦可以使用偏好,那么您可以通过Edit -> Preferences -> Protocols -> MySQL -> Port Number将其设置为所需,类似于其他解剖器允许可配置端口的数量。

+0

谢谢!很有帮助! –

0

Wireshark有一些逻辑可以自动确定观察到的通信类型。我不知道它在你的情况下失败的原因,但你总是可以手动指向所需的协议。右键点击你的TCP数据包,点击“解码为”并在最后一栏选择“MySQL”。

+0

谢谢!很有帮助! –