4.2 Сессии MySQL Shell
В MySQL Shell соединения с экземплярами MySQL Server обрабатываются объектом сессии. Доступны следующие типы объектов сессии:
Session: Используйте этот тип объекта сессии для разработки новых приложений, взаимодействующих с экземплярами MySQL Server, где доступен протокол X. Протокол X обеспечивает лучшую интеграцию с MySQL Server. Для использования протокола X требуется установка и активация плагина X на экземпляре MySQL Server, что по умолчанию выполняется с MySQL 8.0. Плагин X прослушивает порт, указанный в , по умолчанию 33060, поэтому укажите этот порт при подключении с помощьюSession.ClassicSession: Используйте этот тип объекта сессии для взаимодействия с экземплярами MySQL Server, где протокол X недоступен. Этот объект предназначен для выполнения SQL-запросов на серверах с использованием классического протокола MySQL. Доступный API для этого типа сессий очень ограничен. Например, отсутствуют операции CRUD X DevAPI, обработка коллекций и поддержка связывания. Для разработки предпочтительны объектыSession, когда это возможно.
ClassicSession специфичен для MySQL Shell и не может использоваться с другими реализациями X DevAPI, такими как MySQL Connectors.
При первом подключении к экземпляру MySQL Server, которое может быть выполнено при запуске MySQL Shell или позже, в MySQL Shell создается глобальный объект, названный session, представляющий это подключение. Этот конкретный объект сессии является глобальным, так как после создания он может использоваться во всех режимах выполнения MySQL Shell: SQL-режим, JavaScript-режим и Python-режим. Соответствующее соединение поэтому называется глобальной сессией. Переменная session хранит ссылку на этот объект сессии и может использоваться в MySQL Shell в режимах JavaScript и Python для работы с подключением.
Глобальный объект session может быть объектом сессии типа Session или объектом сессии типа ClassicSession в зависимости от выбранного протокола при подключении к экземпляру MySQL Server. Вы можете выбрать протокол, а значит и тип объекта сессии, с помощью параметра команды или указать его в данных подключения. Чтобы получить информацию о текущей глобальной сессии, выполните:
mysql-js []> session
<ClassicSession:user@example.com:3330>
При подключении глобальной сессии отображается тип объекта сессии и адрес экземпляра MySQL Server, к которому подключена глобальная сессия.
Если вы явно выбираете протокол или неявно указываете его при подключении, MySQL Shell пытается установить соединение с использованием этого протокола и возвращает ошибку, если это не удается. Если параметры подключения не указывают протокол, MySQL Shell сначала пытается установить соединение с использованием протокола X (возвращает объект сессии типа Session), и если это не удается, пытается установить соединение с использованием классического протокола MySQL (возвращает объект сессии типа ClassicSession).
Для проверки результатов попытки подключения используйте команду MySQL Shell \status или метод shell.status(). Эти команды отображают протокол подключения и другую информацию о подключении, представленном глобальным объектом session, или возвращают «Не подключено», если глобальный объект session не подключен к серверу MySQL. Например:
mysql-js []> shell.status()
MySQL Shell version 8.1.0-commercial
Connection Id: 9
Current schema:
Current user: root@localhost
SSL: Cipher in use: TLS_AES_256_GCM_SHA384 TLSv1.3
Using delimiter: ;
Server version: 8.1.0-commercial MySQL Enterprise Server - Commercial
Protocol version: Classic 10
Client library: 8.1.0
Connection: localhost via TCP/IP
TCP port: 3306
Server characterset: utf8mb4
Schema characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
Result characterset: utf8mb4
Compression: Disabled
Uptime: 9 hours 42 min 5.0000 sec
Threads: 2 Questions: 61 Slow queries: 0 Opens: 176 Flush tables: 3 Open tables: 95 Queries per second avg: 0.001
В этом разделе подробно описаны объекты сессий, представляющие подключения к экземплярам MySQL Server, и глобальный объект session. Полные инструкции и примеры каждого из способов подключения к экземплярам MySQL Server, упомянутые в этом разделе, а также другие доступные параметры подключения см. в разделе 4.3, «Подключения MySQL Shell».
© 2025 Oracle
Licensed under the GPLv2 License.