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 сначала пытается установить соединение с использованием классического протокола MySQL (возвращая объект сессии типа Session), а если это не удаётся, пытается установить соединение с использованием протокола X.
Для проверки результатов попытки соединения используйте команду \status MySQL Shell или метод 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.