1

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

$ mysql -h 127.0.0.1 ...

然后wireshark转储请求,但如果

$ mysql -h localhost ...

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

在 /etc/hosts 中:127.0.0.1 localhost

问题可能是什么?

4

1 回答 1

1

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

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

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

于 2013-05-21T11:40:09.840 回答