如何强制 MySQL 通过 TCP 而不是 Unix 套接字进行连接?

mysqlmysqli database

使用 MySQL 客户端库的程序(例如 ‘mysql’ 和 ‘mysqldump’)支持借助多种传输协议(例如 TCP/IP、Unix 套接字文件、命名管道、共享内存等)将 MySQL 连接到服务器。

对于给定的连接,如果未指定传输协议,则将其确定为单独的任务。

示例

在 Unix 和类 Unix 系统上,与 localhost 的连接将导致套接字文件连接,否则将导致与 127.0.0.1 的 TCP/IP 连接。如果必须特别指定协议,则使用 --protocol 命令选项来完成。

下表显示了 --protocol 允许的值,并告诉每个值适用的平台。需要注意的是,这些值不区分大小写。

--protocol valueTransport protocol usedApplicable platforms
TCPTCP/IPAll
SOCKETUnix socket fileUnix and Unix-like systems
PIPENamed pipeWindows
MEMORYShared memoryWindows

TCP/IP 传输也支持与本地或远程 MySQL 服务器的连接。套接字文件、命名管道和共享内存传输仅支持与本地 MySQL 服务器的连接。需要注意的是,命名管道传输允许远程连接,但目前 MySQL 中尚未实现此功能。

传输协议 - 未指定

如果未指定传输协议,则 localhost 将被解释为 −

  • 在 Unix 和类 Unix 系统上,与 localhost 的连接会导致套接字文件连接。

  • 在其他系统上,与 localhost 的连接会导致与 127.0.0.1 的 TCP/IP 连接。

传输协议 -已指定

如果指定了传输协议,则根据该特定协议解释本地主机。


相关文章