如何确定MySQL客户端使用的连接方法?


Answers:


13

寻找交通工具

尝试使用netstat -ln | grep 'mysql',您将看到输出如何将其连接。如果您有权使用Shell

在Unix上,MySQL程序特别对待主机名localhost,与其他基于网络的程序相比,它可能与您期望的不同。为了连接到本地主机,MySQL程序尝试使用Unix套接字文件连接到本地服务器。

即使给定了--port-P选项来指定端口号,也会发生这种情况。

如果像yould从知道的连接类型的MySQL的CLI中,使用“\ S”(状态)命令。

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套接字文件在Unix上连接到本地主机:

shell> mysql --host=localhost

要强制使用TCP / IP连接,请指定一个--protocol选项:

shell> mysql --host=localhost --protocol=TCP

协议类型:

  • TCP:与本地或远程服务器的TCP / IP连接。在所有平台上均可用。
  • SOCKET:Unix套接字文件到本地服务器的连接。仅在Unix上可用。
  • PIPE:与本地或远程服务器的命名管道连接。仅在Windows上可用。
  • 内存:与本地服务器的共享内存连接。仅在Windows上可用。

Unix套接字文件连接的速度比TCP / IP快,但是只能在连接到同一台计算机上的服务器时使用。


@Anil:谢谢,您给了很好的答案。
尤金·雅玛什
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.