用wireshark监听mysql的请求。 127.0.0.1没问题,但忽略对localhost的请求

时间:2013-05-21 10:57:13

标签: mysql networking wireshark

我正在尝试用linux上的wireshark调试对mysql服务器的请求。在wireshark中,我正在使用过滤器mysql监听所有接口。当我连接到服务器时:

$ mysql -h 127.0.0.1 ...

然后wireshark转储请求,但是如果

$ mysql -h localhost ...

然后wireshark会忽略请求(表格保持为空)。

/ etc / hosts中的

:127.0.0.1 localhost

问题可能是什么?

1 个答案:

答案 0 :(得分:1)

如果主机名字面为localhost,则客户端库使用UNIX域套接字而不是TCP / IP。

请参阅http://dev.mysql.com/doc/refman/5.5/en/connecting.html

  

在Unix上,MySQL程序特别对待主机名localhost,这种方式可能与您期望的与其他基于网络的程序相比有所不同。对于与localhost的连接,MySQL程序尝试使用Unix套接字文件连接到本地服务器。即使给出--port or -P选项指定端口号,也会发生这种情况。要确保客户端与本地服务器建立TCP / IP连接,请使用--host or -h指定主机名值127.0.0.1或本地服务器的IP地址或名称。您还可以使用--protocol=TCP选项明确指定连接协议,即使是localhost