如何强制 MySQL 通过 TCP 而不是 Unix 套接字进行连接?
mysqlmysqli database
使用 MySQL 客户端库的程序(例如 ‘mysql’ 和 ‘mysqldump’)支持借助多种传输协议(例如 TCP/IP、Unix 套接字文件、命名管道、共享内存等)将 MySQL 连接到服务器。
对于给定的连接,如果未指定传输协议,则将其确定为单独的任务。
示例
在 Unix 和类 Unix 系统上,与 localhost 的连接将导致套接字文件连接,否则将导致与 127.0.0.1 的 TCP/IP 连接。如果必须特别指定协议,则使用 --protocol 命令选项来完成。
下表显示了 --protocol 允许的值,并告诉每个值适用的平台。需要注意的是,这些值不区分大小写。
--protocol value | Transport protocol used | Applicable platforms |
---|---|---|
TCP | TCP/IP | All |
SOCKET | Unix socket file | Unix and Unix-like systems |
PIPE | Named pipe | Windows |
MEMORY | Shared memory | Windows |
TCP/IP 传输也支持与本地或远程 MySQL 服务器的连接。套接字文件、命名管道和共享内存传输仅支持与本地 MySQL 服务器的连接。需要注意的是,命名管道传输允许远程连接,但目前 MySQL 中尚未实现此功能。
传输协议 - 未指定
如果未指定传输协议,则 localhost 将被解释为 −
在 Unix 和类 Unix 系统上,与 localhost 的连接会导致套接字文件连接。
在其他系统上,与 localhost 的连接会导致与 127.0.0.1 的 TCP/IP 连接。
传输协议 -已指定
如果指定了传输协议,则根据该特定协议解释本地主机。