Spec-Zone.ru › MySQL Shell 9.2

4.2 Сессии MySQL Shell

  • 4.2.1 Создание глобального объекта Session при запуске MySQL Shell
  • 4.2.2 Создание глобального объекта Session после запуска MySQL Shell
  • 4.2.3 Скриптирование сессий в режимах JavaScript и Python

В 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.
https://docs.oracle.com/cd/E17952_01/mysql-shell-9.2-en/mysql-shell-sessions.html

Spec-Zone.ru

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