MySQL 8.0 参考手册  / 第 4 章 MySQL 程序  / 4.2 使用 MySQL 程序  /  4.2.5 连接传输协议

4.2.5 连接传输协议

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

传输协议选择

对于给定的连接,如果未明确指定传输协议,则会隐式确定。例如,localhost在 Unix 和类 Unix 系统上导致套接字文件连接的连接,以及127.0.0.1其他情况下的 TCP/IP 连接。有关其他信息,请参阅第 4.2.4 节,“使用命令选项连接到 MySQL 服务器”

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

--protocol价值 使用的传输协议 适用平台
TCP 网络协议/网络协议 全部
SOCKET Unix套接字文件 Unix 和类 Unix 系统
PIPE 命名管道 视窗
MEMORY 共享内存 视窗

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

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

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

localhost的解读

如果未明确指定传输协议, localhost则解释如下:

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

  • 否则,与 的连接会localhost 导致与 的 TCP/IP 连接 127.0.0.1

如果明确指定传输协议, localhost则根据该协议进行解释。例如,对于 --protocol=TCP,连接到 localhost会导致 127.0.0.1所有平台上的 TCP/IP 连接。

加密和安全特性

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 连接和命名管道连接不安全。

另请参阅将加密连接配置为强制性

连接压缩

所有传输协议都需要对客户端和服务器之间的流量进行压缩。如果给定连接同时使用压缩和加密,则压缩发生在加密之前。有关详细信息,请参阅 第 4.2.6 节,“连接压缩控制”