Documentation Home
MySQL 8.4 Reference Manual
Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


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

6.2.7 连接传输协议

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

对于给定的连接,如果传输协议不指定,会隐式确定。例如,对于连接到localhost,在 Unix 和 Unix 类系统上将建立套接字文件连接,在其他情况下将建立 TCP/IP 连接到127.0.0.1。更多信息,请见Section 6.2.4,“使用命令选项连接到 MySQL 服务器”

要指定传输协议,可以使用--protocol命令选项。下表显示了--protocol的可接受值,并且指明了每个值适用的平台。这些值不区分大小写。

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

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

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

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

  • 在 Unix 和 Unix 类系统上,对于连接到localhost将建立套接字文件连接。

  • 否则,对于连接到localhost将建立 TCP/IP 连接到127.0.0.1

如果传输协议被指定,localhost 将被解释为该协议的相对路径。例如,使用 --protocol=TCP,连接到 localhost 将建立一个 TCP/IP 连接到 127.0.0.1,在所有平台上。

加密和安全性特征

TCP/IP 和 socket-file 传输协议都可以使用 TLS/SSL 加密,使用在 命令选项:加密连接 中描述的选项。named-pipe 和共享内存传输协议不支持 TLS/SSL 加密。

默认情况下,连接是安全的,如果使用了安全的传输协议。否则,对于支持 TLS/SSL 加密的协议,可以使用加密来使连接安全。

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

  • socket-file 连接默认情况下安全,也可以加密,但加密 socket-file 连接不会增加安全性,并且会增加 CPU 负载。

  • named-pipe 连接默认情况下不安全,也不能使用加密来使其安全。然而,系统变量 named_pipe_full_access_group 可以控制哪些 MySQL 用户可以使用 named-pipe 连接。

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

如果启用了 require_secure_transport 系统变量,服务器将只允许使用安全传输协议的连接。根据前面的注释,使用 TCP/IP 加密的连接、使用 socket 文件或共享内存的连接都是安全连接。TCP/IP 连接不使用 TLS/SSL 加密和 named-pipe 连接不是安全的。

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

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