6.2.7 Протоколы транспорта соединения
Для программ, использующих библиотеку клиента MySQL (например, mysql и mysqldump), MySQL поддерживает соединения с сервером на основе нескольких протоколов транспорта: TCP/IP, файл сокета Unix, именованная труба и общая память. В этом разделе описывается, как выбрать эти протоколы, а также их сходство и различия.
Выбор протокола транспорта
Для данного соединения, если протокол транспорта не указан явно, он определяется неявно. Например, соединения с localhost приводят к соединению с файлом сокета на системах Unix и Unix-подобных системах, и к соединению TCP/IP с 127.0.0.1 в противном случае. Дополнительная информация приведена в разделе 6.2.4 «Подключение к серверу MySQL с помощью командных параметров».
Чтобы явно указать протокол, используйте параметр команды --protocol. В следующей таблице показаны допустимые значения для --protocol и указаны платформы, для которых каждое значение применимо. Значения не чувствительны к регистру.
--protocol Значение | Используемый протокол транспорта | Применимые платформы |
|---|---|---|
TCP | TCP/IP | Все |
SOCKET | Файл сокета Unix | Unix и Unix-подобные системы |
PIPE | Именованная труба | Windows |
MEMORY | Общая память | Windows |
Поддержка транспорта для локальных и удаленных соединений
Транспорт TCP/IP поддерживает соединения с локальными или удаленными серверами MySQL.
Транспорт сокета, именованной трубы и общей памяти поддерживает соединения только с локальными серверами MySQL. (Транспорт именованной трубы позволяет для удаленных соединений, но эта возможность не реализована в MySQL).
Интерпретация localhost
Если протокол транспорта не указан явно, localhost интерпретируется следующим образом:
На системах Unix и Unix-подобных системах, соединение с
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 по умолчанию не являются безопасными, но могут быть зашифрованы, чтобы сделать их безопасными.
Соединения с файлом сокета по умолчанию являются безопасными. Их также можно зашифровать, но шифрование соединения с файлом сокета не делает его более безопасным и увеличивает нагрузку на ЦП.
Соединения именованной трубы по умолчанию не являются безопасными и не могут быть зашифрованы для обеспечения безопасности. Однако системная переменная
named_pipe_full_access_groupдоступна для управления тем, какие пользователи MySQL могут использовать соединения именованной трубы.Соединения общей памяти по умолчанию являются безопасными.
Если системная переменная require_secure_transport включена, сервер разрешает только соединения, использующие какой-либо вид защищенного транспорта. Согласно предыдущим замечаниям, соединения, использующие зашифрованное с помощью TLS/SSL соединение TCP/IP, файл сокета или общую память, являются защищенными соединениями. Соединения TCP/IP, не зашифрованные с помощью TLS/SSL и соединения именованной трубы не являются защищенными.
См. также Настройка зашифрованных соединений как обязательных.
Сжатие соединения
Все протоколы транспорта могут использовать сжатие трафика между клиентом и сервером. Если для данного соединения используются сжатие и шифрование, сжатие происходит до шифрования. Для получения дополнительной информации см. Раздел 6.2.8 «Управление сжатием соединения».
© 2025 Oracle
Licensed under the GPLv2 License.