Spec-Zone.ru › MySQL Shell 9.2

4.3.3 Подключение с помощью сокетов Unix и именованных каналов Windows

В Unix-системах подключения MySQL Shell по умолчанию используют сокеты Unix, если выполняются следующие условия:

  • Порт TCP не указан.

  • Имя хоста не указано или оно равно localhost.

  • Указан параметр --socket или -S, с или без пути к файлу сокета.

Если вы укажете --socket без значения и знака равенства, или -S без значения, будет использован стандартный файл сокета Unix для протокола. Если вы укажете путь к альтернативному файлу сокета Unix, будет использован этот файл.

Если имя хоста указано, но оно не localhost, устанавливается TCP-соединение. В этом случае, если порт TCP не указан, используется значение по умолчанию 3306.

В Windows для подключений MySQL Shell, использующих классический протокол MySQL, если вы укажете имя хоста как точку (.), MySQL Shell подключается через именованный канал.

  • Если вы подключаетесь с помощью строкового значения подключения в формате URI, укажите user@.

  • Если вы подключаетесь с помощью пар ключ-значение, укажите {"host": "."}

  • Если вы подключаетесь с помощью отдельных параметров, укажите --host=. или -h .

По умолчанию используется имя канала MySQL. Вы можете указать альтернативный именованный канал с помощью параметра --socket или в строке подключения в формате URI.

В строках в формате URI путь к файлу сокета Unix или именованному каналу Windows должен быть закодирован, используя кодирование процентов или заключая путь в скобки. Скобки устраняют необходимость в кодировании процентов таких символов, как / разделитель каталогов. Если путь к файлу сокета Unix включён в строку URI в качестве части строки запроса, ведущий слэш должен быть закодирован процентами, но если он заменяет имя хоста, ведущий слэш не должен быть закодирован процентами, как показано в следующих примерах:

mysql-js> \connect user@localhost?socket=%2Ftmp%2Fmysql.sock
mysql-js> \connect user@localhost?socket=(/tmp/mysql.sock)
mysql-js> \connect user@/tmp%2Fmysql.sock
mysql-js> \connect user@(/tmp/mysql.sock)

Только в Windows, именованный канал должен быть префиксным символами \\.\, а также закодирован с использованием кодирования процентов или заключён в скобки, как показано в следующих примерах:

(\\.\named:pipe)
\\.\named%3Apipe
Важно

В Windows, если одна или несколько сессий MySQL Shell подключены к экземпляру MySQL Server с помощью именованного канала, и вам нужно остановить сервер, вы должны сначала закрыть сессии MySQL Shell. Сессии, которые всё ещё подключены таким образом, могут привести к зависанию сервера во время процедуры остановки. Если это произойдёт, выйдите из MySQL Shell, и сервер продолжит процедуру остановки.

Дополнительную информацию о подключении с использованием файлов сокетов Unix и именованных каналов Windows см. в и .

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/mysql-shell-connection-socket.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API