Documentation Home
MySQL 8.3 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 40.8Mb
PDF (A4) - 40.9Mb
Man Pages (TGZ) - 294.0Kb
Man Pages (Zip) - 409.0Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb
Excerpts from this Manual

MySQL 8.3 Reference Manual  /  ...  /  Connection Transport Protocols

6.2.7 连接传输协议

对于使用 MySQL 客户端库的程序(例如,mysqlmysqldump),MySQL 支持基于多种传输协议的连接:TCP/IP、Unix 套接字文件、命名管道和共享内存。本节描述如何选择这些协议,以及它们的相似之处和不同之处。

传输协议选择

对于给定的连接,如果不明确指定传输协议,则它将被隐式确定。例如,连接到 localhost 将在 Unix 和 Unix-like 系统上结果为套接字文件连接,否则将结果为 TCP/IP 连接到 127.0.0.1。有关更多信息,请参阅 第 6.2.4 节,“使用命令选项连接到 MySQL 服务器”

要明确指定协议,请使用 --protocol 命令选项。下表显示了 --protocol 的允许值,并指出了每个值的适用平台。这些值不区分大小写。

--protocol Value Transport Protocol Used Applicable Platforms
TCP TCP/IP 所有
SOCKET Unix 套接字文件 Unix 和 Unix-like 系统
PIPE 命名管道 Windows
MEMORY 共享内存 Windows

本地和远程连接的传输支持

TCP/IP 传输支持连接到本地或远程 MySQL 服务器。

套接字文件、命名管道和共享内存传输仅支持连接到本地 MySQL 服务器。(命名管道传输确实允许远程连接,但这项功能在 MySQL 中未实现。)

localhost 的解释

如果不明确指定传输协议,localhost 将被解释如下:

  • 在 Unix 和 Unix-like 系统上,连接到 localhost 将结果为套接字文件连接。

  • 否则,连接到 localhost 将结果为 TCP/IP 连接到 127.0.0.1

如果明确指定传输协议,localhost 将根据该协议进行解释。例如,使用 --protocol=TCP,连接到 localhost 将结果为 TCP/IP 连接到 127.0.0.1 在所有平台上。

加密和安全特征

TCP/IP 和套接字文件传输受 TLS/SSL 加密的影响,使用 加密连接命令选项 中描述的选项。命名管道和共享内存传输不受 TLS/SSL 加密的影响。

连接默认情况下是安全的,如果它是通过默认情况下安全的传输协议进行的。否则,对于受 TLS/SSL 加密的协议,连接可以使用加密变得安全:

  • TCP/IP 连接默认情况下不安全,但可以加密以使其安全。

  • 套接字文件连接默认情况下是安全的。它们也可以被加密,但是加密套接字文件连接不会使其更加安全,并且会增加 CPU 负载。

  • 命名管道连接默认情况下不安全,并且不能通过加密来使其安全。然而,named_pipe_full_access_group 系统变量可用于控制哪些 MySQL 用户被允许使用命名管道连接。

  • 共享内存连接默认情况下是安全的。

如果 require_secure_transport 系统变量被启用,服务器将只允许使用某种形式的安全传输的连接。根据前面的备注,使用 TLS/SSL 加密的 TCP/IP 连接、套接字文件连接或共享内存连接都是安全连接。未使用 TLS/SSL 加密的 TCP/IP 连接和命名管道连接不是安全的。

另见 将加密连接配置为强制

连接压缩

所有传输协议都可以使用压缩来压缩客户端和服务器之间的流量。如果同时使用压缩和加密,对于给定的连接,压缩将在加密之前发生。有关更多信息,请参阅 第 6.2.8 节,“连接压缩控制”