6.11 Подключение с использованием именованных каналов
Клиентам, которые используют именованные каналы для подключения к серверу, предоставляются минимальные права. Однако Connector/J может использовать именованные каналы только при предоставлении полного доступа к ним. В качестве обходного решения сервер MySQL, к которому Connector/J пытается подключиться, должен быть запущен с системной переменной , которая указывает локальную группу Windows, содержащую пользователя, от имени которого выполняется JVM клиентского приложения (и, следовательно, Connector/J); см. описание для получения более подробной информации.
Поддержка именованных каналов недоступна для подключений X Protocol.
Connector/J также поддерживает доступ к MySQL с помощью именованных каналов на платформах Windows с NamedPipeSocketFactory в качестве фабрики сокетов для подключения. Если вы не используете namedPipePath свойство, используется значение по умолчанию '\\.\pipe\MySQL'. Если вы используете NamedPipeSocketFactory, значения имени хоста и номера порта в URL JDBC игнорируются. Чтобы включить эту функцию, установите свойство socketFactory:
socketFactory=com.mysql.cj.protocol.NamedPipeSocketFactoryУстановите это свойство, а также путь к именованному каналу, используя следующий URL подключения:
jdbc:mysql:///test?socketFactory=com.mysql.cj.protocol.NamedPipeSocketFactory&namedPipePath=\\.\pipe\MySQL80Чтобы создать собственные фабрики сокетов, следуйте образцу кода в com.mysql.cj.protocol.NamedPipeSocketFactory или com.mysql.cj.protocol.StandardSocketFactory.
Альтернативный подход заключается в использовании следующих двух свойств в URL подключения для установления подключений по именованным каналам на платформах Windows:
(protocol=pipe)для именованных каналов (значение по умолчанию для свойства равноtcp).(path=для пути к именованным каналам. Значение по умолчанию для пути равноpath_to_pipe)\\.\pipe\MySQL.
Формат указания адреса вида “address-equals” или “key-value” (подробнее см. Одиночный хост) значительно упрощает URL для подключения по именованному каналу на Windows. Например, чтобы использовать стандартный именованный канал “\\.\pipe\MySQL,” просто укажите:
jdbc:mysql://address=(protocol=pipe)/testЧтобы использовать настраиваемый именованный канал “\\.\pipe\MySQL80”:
jdbc:mysql://address=(protocol=pipe)(path=\\.\pipe\MySQL80)/testПри использовании (protocol=pipe), NamedPipeSocketFactory автоматически выбирается.
Именованные каналы работают только при подключении к серверу MySQL на том же физическом компьютере, где работает драйвер JDBC. В простых тестах производительности доступ по именованным каналам на 30-50% быстрее, чем стандартный доступ по TCP/IP. Однако это варьируется в зависимости от системы, и в многих конфигурациях Windows именованные каналы медленнее, чем TCP/IP.
© 2025 Oracle
Licensed under the GPLv2 License.