Spec-Zone.ru › MySQL Shell 9.2
Глава 1 Функциональные возможности MySQL Shell

Глава 1 Функции MySQL Shell

Важно

MySQL Shell часто обновляется с исправлениями и новыми функциями. Сильно рекомендуется всегда использовать последнюю версию. Последнюю версию MySQL Shell можно использовать с любой релизной версией MySQL 8.0 или выше.

Следующие функции доступны в MySQL Shell.

  • Поддерживаемые языки

  • Интерактивное выполнение кода

  • Выполнение кода в пакетном режиме

  • Поддерживаемые API

  • Поддержка протокола X

  • Расширения

  • Утилиты

  • Интеграция API командной строки

  • Форматы вывода

  • Ведение журнала и отладка

  • Глобальная сессия

Поддерживаемые языки

MySQL Shell обрабатывает код, написанный на JavaScript, Python и SQL. Любой исполняемый код обрабатывается как один из этих языков в зависимости от текущего активного языка. Также существуют специфические команды MySQL Shell, начинающиеся с \, которые позволяют настроить MySQL Shell независимо от выбранного языка. Дополнительную информацию см. в разделе 3.1 «Команды MySQL Shell».

MySQL Shell использует Python 3, а не Python 2.7. Для платформ, которые включают поддерживаемый системный установщик Python 3, MySQL Shell использует последнюю доступную версию с минимальной поддерживаемой версией Python 3.6. Для платформ, где Python 3 не включён или не соответствует минимальной поддерживаемой версии, MySQL Shell сохраняет совместимость кода с Python 2.6 и Python 2.7, поэтому, если вам требуются более старые версии, вы можете собрать MySQL Shell из исходного кода с использованием соответствующей версии Python.

MySQL Shell содержит Python 3.10.8 для платформ, где Python 3 не включён или не соответствует минимальной поддерживаемой версии.

Примечание

Это верно для всех сборок, кроме Oracle Linux 7, который содержит Python 3.9.15

Интерактивное выполнение кода

MySQL Shell предоставляет режим интерактивного выполнения кода, где вы вводите код в приглашении MySQL Shell, и каждое введённое выражение обрабатывается, а результат обработки выводится на экран. Поддерживается ввод текста Юникода, если используемый терминал его поддерживает. Поддерживаются цветные терминалы.

Можно записывать многострочный код с помощью команды, позволяя MySQL Shell кэшировать несколько строк и затем выполнять их как одно выражение. Дополнительную информацию см. в Разделе о поддержке многострочного кода.

Выполнение кода в пакетном режиме

В дополнение к интерактивному выполнению кода, MySQL Shell может также получать код из различных источников и обрабатывать его. Этот метод обработки кода в неинтерактивном режиме называется пакетным выполнением.

Поскольку пакетный режим предназначен для обработки сценариев одного языка, он ограничен минимальным неформатированным выводом и отключением выполнения команд. Чтобы избежать этих ограничений, используйте команду --interactive параметра командной строки, которая указывает MySQL Shell выполнить вход как интерактивную сессию. В этом режиме вход обрабатывается построчно, как если бы каждая строка была введена в интерактивной сессии. Дополнительную информацию см. в разделе 5.6 «Выполнение кода в пакетном режиме».

Поддерживаемые API

MySQL Shell включает следующие API, реализованные на JavaScript и Python, которые вы можете использовать для разработки кода, взаимодействующего с MySQL.

  1. AdminAPI позволяет администрировать экземпляры MySQL, используя их для создания развертываний InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet и интеграции MySQL Router.

    • InnoDB Cluster предоставляет интегрированное решение для высокой доступности и масштабируемости, используя базы данных MySQL на основе InnoDB. InnoDB Cluster — это альтернативное решение для использования Group Replication без необходимости в продвинутых знаниях MySQL. См. главу 8, MySQL InnoDB Cluster.

    • InnoDB ClusterSet обеспечивает отказоустойчивость для развертываний главы 8, MySQL InnoDB Cluster, связывая основной InnoDB Cluster с одним или несколькими репликами в альтернативных расположениях. См. главу 9, MySQL InnoDB ClusterSet.

    • InnoDB ReplicaSet позволяет управлять набором экземпляров MySQL, выполняющих асинхронную репликацию на основе GTID. См. главу 10, MySQL InnoDB ReplicaSet.

    AdminAPI также предоставляет операции для настройки пользователей для MySQL Router, чтобы интеграция с InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet была максимально простой. Более подробную информацию об AdminAPI см. в главе 6, MySQL AdminAPI.

  2. X DevAPI позволяет разработчикам работать с реляционными и документированными данными, когда MySQL Shell подключен к серверу MySQL с использованием протокола X. Для получения дополнительной информации см. . Документацию по концепциям и использованию X DevAPI см. .

Поддержка протокола X

MySQL Shell разработан для предоставления интегрированного командного клиента для всех продуктов MySQL, которые поддерживают протокол X. Функции разработки MySQL Shell предназначены для сессий, использующих протокол X. MySQL Shell также может подключаться к серверам MySQL, которые не поддерживают протокол X, используя классический протокол MySQL. Минимальный набор функций из X DevAPI доступен для сессий, созданных с использованием классического протокола MySQL.

Расширения

Вы можете определять расширения для базовой функциональности MySQL Shell в виде отчетов и объектов расширения. Отчёты и объекты расширения можно создавать с использованием JavaScript или Python и использовать независимо от активного языка MySQL Shell. Вы можете сохранять отчёты и объекты расширения в плагинах, которые загружаются автоматически при запуске MySQL Shell. MySQL Shell имеет несколько встроенных отчетов, готовых к использованию. Более подробную информацию см. в главе 11, Расширение MySQL Shell.

Утилиты

MySQL Shell включает следующие утилиты для работы с MySQL:

  • Утилита проверки обновления для проверки готовности экземпляров сервера MySQL к обновлению. Используйте util.checkForServerUpgrade() для доступа к утилите проверки обновления.

  • Утилита импорта JSON для импорта JSON-документов в коллекцию или таблицу сервера MySQL. Используйте util.importJSON() для доступа к утилите импорта.

  • Утилита параллельного импорта таблиц, которая разбивает один файл данных и использует несколько потоков для загрузки фрагментов в таблицу MySQL.

Дополнительную информацию см. в главе 12, Утилиты MySQL Shell.

Интеграция API командной строки

MySQL Shell предоставляет большую часть своей функциональности с помощью синтаксиса команд API, который позволяет легко интегрировать mysqlsh с другими инструментами. Например, вы можете создать скрипты bash, которые администрируют InnoDB Cluster с помощью этой функциональности. Используйте синтаксис mysqlsh [options] -- shell_object object_method [method_arguments] для передачи операций непосредственно в глобальные объекты MySQL Shell, минуя интерфейс REPL. См. раздел 5.8 «Интеграция API командной строки».

Форматы вывода

MySQL Shell может возвращать результаты в табличном, табулированном или вертикальном формате, или в виде JSON-вывода. Для интеграции MySQL Shell с внешними инструментами можно активировать JSON-оборачивание для всего вывода при запуске MySQL Shell из командной строки. Дополнительную информацию см. в разделе 5.7, «Форматы вывода».

Ведение журнала и отладка

MySQL Shell может регистрировать информацию о процессе выполнения на выбранном уровне детализации. Информация о регистрации может быть отправлена в любой комбинации файла журнала приложения, дополнительного места отображения и консоли. Дополнительную информацию см. в главе 13, Ведение журнала и отладка MySQL Shell.

Глобальная сессия

В MySQL Shell соединения с экземплярами MySQL Server обрабатываются объектом сессии. При первом подключении к экземпляру MySQL Server, которое может быть выполнено при запуске MySQL Shell или позже, создаётся глобальный объект MySQL Shell под названием session для представления этого соединения. Эта сессия известна как глобальная сессия, потому что она может использоваться во всех режимах выполнения MySQL Shell. В режиме SQL глобальная сессия используется для выполнения инструкций, а в режимах JavaScript и Python она доступна через объект под названием session. Вы можете создавать дополнительные объекты сессий, используя функции, доступные в модулях JavaScript и Python mysqlx и mysql, и вы можете назначить один из этих объектов сессий глобальному объекту session, чтобы вы могли использовать его в любом режиме. Дополнительную информацию см. в разделе 4.2, «Сессии MySQL Shell».

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

Spec-Zone.ru

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