当使用MySQL客户端(例如mysql)时,如何确定它是使用Unix文件连接到服务器,还是使用TCP/IP连接到服务器?
发布于 2012-02-19 20:15:55
尝试使用netstat -ln | grep 'mysql',您可以看到输出是如何连接它的。如果您可以访问shell
在Unix上,MySQL程序特别对待主机名localhost,这种方式可能与其他基于网络的程序不同。对于到本地主机的连接,MySQL程序试图使用Unix文件连接到本地服务器。
即使给出一个--port或-P选项来指定端口号,也会发生这种情况。
如果您想知道mysql中的连接类型,请使用'\s‘(status)命令。
mysql> \s输出将有如下一行(在Unix上)。
Connection: 127.0.0.1 via TCP/IP或
Connection: Localhost via UNIX socket若要确保客户端与本地服务器建立TCP/IP连接,请使用--host或-h指定主机名值127.0.0.1或本地服务器的IP地址或名称。您还可以使用--protocol=TCP选项显式地指定连接协议,甚至对于本地主机也是如此。例如:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP--protocol={TCP|SOCKET|PIPE|MEMORY}选项显式指定用于连接到服务器的协议。当其他连接参数通常会导致您想要的协议之外的协议被使用时,这是非常有用的。例如,Unix上到localhost的连接默认使用Unix套接字文件:
shell> mysql --host=localhost若要强制使用TCP/IP连接,请指定一个--protocol选项:
shell> mysql --host=localhost --protocol=TCPUnix套接字文件连接比TCP/IP更快,但只能在连接到同一台计算机上的服务器时使用。
https://unix.stackexchange.com/questions/32134
复制相似问题