我正在尝试用linux上的wireshark调试对mysql服务器的请求。在wireshark中,我正在使用过滤器mysql监听所有接口。当我连接到服务器时:
$ mysql -h 127.0.0.1 ...
然后wireshark转储请求,但是如果
$ mysql -h localhost ...
然后wireshark会忽略请求(表格保持为空)。
/ etc / hosts中的:127.0.0.1 localhost
问题可能是什么?
答案 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
。