当使用 MySQL 客户端(例如mysql
)时,我如何确定它是使用 Unix 套接字文件还是使用 TCP/IP 连接到服务器?
har*_*kat 13
尝试使用netstat -ln | grep 'mysql'
,您可以看到它是如何通过输出连接的。如果您可以访问 shell
在 Unix 上,MySQL 程序特别对待主机名 localhost,与其他基于网络的程序相比,它的方式可能与您期望的不同。对于到 localhost 的连接,MySQL 程序尝试使用 Unix 套接字文件连接到本地服务器。
即使给出了一个--port
或-P
选项来指定端口号,也会发生这种情况。
如果像yould从知道的连接类型中的MySQL的CLI中,使用“\ S”(状态)命令。
mysql> \s
Run Code Online (Sandbox Code Playgroud)
输出将有如下一行(在 Unix 上)。
Connection: 127.0.0.1 via TCP/IP
Run Code Online (Sandbox Code Playgroud)
或者
Connection: Localhost via UNIX socket
Run Code Online (Sandbox Code Playgroud)
要确保客户端与本地服务器建立 TCP/IP 连接,请使用--host
或-h
指定主机名值 127.0.0.1,或本地服务器的 IP 地址或名称。您还可以使用该--protocol=TCP
选项显式指定连接协议,即使对于本地主机也是如此。例如:
shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP
Run Code Online (Sandbox Code Playgroud)
该--protocol={TCP|SOCKET|PIPE|MEMORY}
选项明确指定用于连接到服务器的协议。当其他连接参数通常会导致使用您想要的协议之外的协议时,这很有用。例如,默认情况下,Unix 到 localhost 的连接是使用 Unix 套接字文件建立的:
shell> mysql --host=localhost
Run Code Online (Sandbox Code Playgroud)
要强制使用 TCP/IP 连接,请指定一个--protocol
选项:
shell> mysql --host=localhost --protocol=TCP
Run Code Online (Sandbox Code Playgroud)
Unix 套接字文件连接比 TCP/IP 快,但只能在连接到同一台计算机上的服务器时使用。
归档时间: |
|
查看次数: |
22100 次 |
最近记录: |