MySQL 的连接传输协议
mysqlmysqli database
使用 MySQL 客户端库的程序(例如 ‘mysql’ 和 ‘mysqldump’)借助多种传输协议(例如 TCP/IP、Unix 套接字文件、命名管道、共享内存等)支持 MySQL 连接到服务器。让我们了解 MySQL − 使用的连接传输协议
下表显示了 --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
TCP/IP 传输也支持与本地或远程 MySQL 服务器的连接。
命名管道传输
命名管道传输确实允许远程连接,但目前 MySQL 中尚未实现此功能。仅支持与本地 MySQL 服务器的连接。它不需要 TLS/SSL 加密。
套接字文件
套接字文件传输仅支持与本地 MySQL 服务器的连接。它可以是 TLS/SSL 加密的。
共享内存
它仅支持与本地 MySQL 服务器的连接。它不需要 TLS/SSL 加密。
如何确保连接安全?
如果连接是通过默认安全的传输协议建立的,则默认情况下该连接是安全的。否则,对于 TLS/SSL 加密的协议,可以使用加密 − 确保连接安全。
TCP/IP 连接默认不安全,但可以加密以确保安全。
套接字文件连接默认是安全的。可以加密,但这不会使其更安全,只会增加 CPU 负载。
命名管道连接默认不安全,无需加密即可确保安全。但可以使用 named_pipe_full_access_group 系统变量来帮助控制哪些 MySQL 用户有权使用命名管道连接。
共享内存连接默认是安全的。