Глава 1 Функции MySQL Shell
MySQL Shell часто обновляется с исправлениями и новыми функциями. Настоятельно рекомендуется всегда использовать последнюю доступную версию. Последняя версия MySQL Shell может использоваться с любой версией MySQL 8.0 или выше.
Следующие функции доступны в MySQL Shell:
Поддерживаемые языки
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, и каждое введённое утверждение обрабатывается, а результат обработки выводится на экран. Поддерживается ввод текста Unicode, если используемый терминал его поддерживает. Поддерживаются цветные терминалы.
Многострочный код может быть написан с использованием команды, что позволяет MySQL Shell кэшировать несколько строк и затем выполнить их как одно утверждение. Дополнительная информация представлена в разделе «Поддержка многострочного ввода».
Выполнение кода в пакетном режиме
Помимо интерактивного выполнения кода, MySQL Shell также может брать код из различных источников и обрабатывать его. Этот метод обработки кода в неинтерактивном режиме называется пакетным выполнением.
Поскольку пакетный режим предназначен для обработки скриптов одного языка, он ограничен минимальным количеством неформатированного вывода и отключением выполнения команд. Чтобы избежать этих ограничений, используйте опцию командной строки --interactive, которая указывает MySQL Shell выполнить ввод как интерактивную сессию. В этом режиме ввод обрабатывается строка за строкой, точно так же, как каждая строка вводилась в интерактивной сессии. Дополнительная информация приведена в разделе 5.6 «Выполнение кода в пакетном режиме».
Поддерживаемые API
MySQL Shell включает следующие API, реализованные на JavaScript и Python, которые можно использовать для разработки кода, взаимодействующего с MySQL.
-
AdminAPI позволяет администрировать экземпляры MySQL, используя их для создания развертываний InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet и интегрируя MySQL Router.
InnoDB Cluster предоставляет интегрированное решение для высокой доступности и масштабируемости с использованием баз данных MySQL на основе InnoDB. InnoDB Cluster — альтернативное решение для использования Group Replication без необходимости в продвинутых знаниях MySQL. См. главу 7 «MySQL InnoDB Cluster».
InnoDB ClusterSet обеспечивает толерантность к сбоям для развертываний главы 7 «MySQL InnoDB Cluster» путём связывания первичного InnoDB Cluster с одной или несколькими репликами в альтернативных местоположениях. См. главу 8 «MySQL InnoDB ClusterSet».
InnoDB ReplicaSet позволяет администрировать набор экземпляров MySQL, выполняющих асинхронную репликацию на основе GTID. См. главу 9 «MySQL InnoDB ReplicaSet».
AdminAPI также предоставляет операции для настройки пользователей для MySQL Router, чтобы интеграция с InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet была максимально простой. Более подробная информация об AdminAPI приведена в главе 6 «MySQL AdminAPI».
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 имеет несколько встроенных отчетов, готовых к использованию. Более подробная информация представлена в главе 10 «Расширение MySQL Shell».
Утилиты
MySQL Shell включает следующие утилиты для работы с MySQL:
Утилиту проверки обновления для проверки готовности экземпляров сервера MySQL к обновлению. Используйте
util.checkForServerUpgrade()для доступа к утилите проверки обновления.Утилиту импорта JSON для импорта JSON-документов в коллекцию или таблицу сервера MySQL. Используйте
util.importJSON()для доступа к утилите импорта.Утилиту параллельного импорта таблиц, которая разбивает один файл данных и использует несколько потоков для загрузки фрагментов в таблицу MySQL.
Дополнительная информация представлена в главе 11 «Утилиты MySQL Shell».
Интеграция API с командной строкой
MySQL Shell предоставляет большую часть своей функциональности с помощью синтаксиса команд API, что позволяет легко интегрировать mysqlsh с другими инструментами. Например, вы можете создать скрипты bash, которые администрируют InnoDB Cluster с помощью этой функциональности. Используйте синтаксис mysqlsh
для непосредственной передачи операций в глобальные объекты MySQL Shell, минуя интерфейс REPL. Более подробная информация в разделе 5.8 «Интеграция API с командной строкой».[options] --
shell_object
object_method
[method_arguments]
Форматы вывода
MySQL Shell может возвращать результаты в табличном, табулированном, вертикальном формате или в формате JSON. Для интеграции MySQL Shell с внешними инструментами можно активировать обертывание JSON для всего вывода при запуске MySQL Shell из командной строки. Дополнительную информацию см. в разделе 5.7, «Форматы вывода».
Ведение журнала и отладка
MySQL Shell может регистрировать информацию о процессе выполнения на выбранном вами уровне детализации. Информация о регистрации может отправляться в любой комбинации файла журнала приложения, дополнительного отображаемого места назначения и консоли. Дополнительную информацию см. в главе 12, Ведение журнала и отладка 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.