Spec-Zone.ru › MySQL Shell 8.4

5.8.1 Обзор интеграции командной строки

В данном разделе представлен обзор интеграции командной строки и некоторые примеры её базового использования. Более подробную информацию см. в разделе 5.8.2 «Подробности интеграции командной строки».

  • Синтаксис интеграции командной строки MySQL Shell

  • Доступные объекты в интеграции командной строки

  • Синтаксис аргументов интеграции командной строки MySQL Shell

  • Примеры интеграции командной строки MySQL Shell

Доступны следующие встроенные глобальные объекты MySQL Shell:

  • session: представляет текущую глобальную сессию.

  • db: представляет базу данных по умолчанию для глобальной сессии, если эта сессия была установлена с использованием подключения X Protocol с указанной базой данных по умолчанию. См. .

  • dba: предоставляет доступ к AdminAPI, используемому для управления развертываниями InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet. См. главу 6, MySQL AdminAPI.

  • cluster: представляет InnoDB Cluster.

  • clusterset: представляет InnoDB ClusterSet.

  • rs: представляет InnoDB ReplicaSet.

  • shell: предоставляет доступ к функциям MySQL Shell, таким как shell.options для настройки параметров MySQL Shell (см. раздел 13.4 «Настройка параметров MySQL Shell»).

  • util: предоставляет доступ к утилитам MySQL Shell. См. главу 11, Утилиты MySQL Shell.

Дополнительную информацию см. в разделе 4.5 «Глобальные объекты MySQL Shell».

Синтаксис интеграции командной строки MySQL Shell

Важно

MySQL Shell по умолчанию считывает файлы параметров MySQL Server и пути входа. В результате, если вы подключаетесь к MySQL Server, использующему файл параметров, он будет использован по умолчанию, и будет попытка создать глобальную сессию с использованием этой конфигурации. Если вы не хотите использовать файл параметров, вы должны добавить в свою командную строку.

Вы получаете доступ к интеграции командной строки, запустив приложение mysqlsh и передав специальный параметр --. Когда вы запускаете MySQL Shell таким образом, -- указывает конец списка параметров (например, сервера для подключения, языка и т. д.), и всё после него передаётся в интеграцию командной строки. Интеграция командной строки поддерживает определённый синтаксис, основанный на объектах и методах, используемых в интерактивном интерфейсе MySQL Shell. Для выполнения операции с помощью синтаксиса интеграции командной строки введите в вашей оболочке:

mysqlsh [options] -- [shell_object]+ object_method [arguments]

Элементы синтаксиса:

  • shell_object — строка, которая соответствует глобальному объекту MySQL Shell. Интеграция командной строки поддерживает вложенные объекты. Для вызова функции в вложенном объекте укажите список объектов в иерархии через пробелы, чтобы достичь нужного объекта.

  • object_method — имя метода, предоставленного последним shell_object. Имена методов могут быть предоставлены, следуя соглашению об именовании JavaScript или Python, или альтернативному соглашению об именовании для интеграции командной строки, где все известные функции используют строчные буквы, а слова разделены дефисами. Имя object_method автоматически преобразуется из стандартного имени camelCase стиля JavaScript, где все изменения регистра заменяются на - и переводятся в нижний регистр. Например, createCluster становится create-cluster.

  • arguments — аргументы, передаваемые в object_method при его вызове.

shell_object должен соответствовать одному из доступных глобальных объектов, а любые вложенные объекты должны быть дочерними объектами предыдущего объекта в списке. object_method должен соответствовать одному из методов последнего объекта в списке и должен быть определён в одном из допустимых форматов (JavaScript, Python или дружественный командной строке). Если они не соответствуют допустимому объекту и его методам, MySQL Shell завершается со статусом 10.

См. примеры в примерах интеграции командной строки MySQL Shell.

Доступные объекты в интеграции командной строки

Чтобы узнать, какие объекты и методы доступны в интеграции командной строки, лучше всего запросить у используемого вами MySQL Shell. Это связано с тем, что помимо стандартных объектов, поставляемых с MySQL Shell, могут быть доступны дополнительные объекты из плагинов.

Чтобы получить список объектов, поддерживаемых интеграцией командной строки:

$ mysqlsh -- --help

Это отобразит список объектов и краткое описание того, что предоставляет каждый объект.

Чтобы получить список функций, доступных в интеграции командной строки для object:

$ mysqlsh -- object --help

Дополнительную информацию см. в разделе 5.8.2.4 «Справка по командной строке».

Синтаксис аргументов интеграции командной строки MySQL Shell

Список arguments необязателен, и все аргументы должны соответствовать синтаксису, подходящему для использования в командной строке, как описано в этом разделе. Специальные символы (например, пробелы или \) и кавычки обрабатываются оболочкой вашей системы (например, bash, cmd) до того, как они будут переданы MySQL Shell. Если вы не знакомы с тем, как ваша оболочка системы обрабатывает эти последовательности символов при анализе команды, вам следует избегать их. Например, чтобы передать параметр с кавычками, такими как “список, имён”, использование только этого синтаксиса в командной строке недостаточно. Вам нужно использовать синтаксис вашей оболочки системы для экранирования этих кавычек. Если вы этого не сделаете, MySQL Shell может не получить фактические кавычки. См. раздел 5.8.2.2 «Определение аргументов».

Существует два типа аргументов, которые могут использоваться в списке аргументов: безымянные аргументы и именованные аргументы. Безымянные аргументы используются для определения параметров простых типов, таких как строки, числа, булевы значения, null. Именованные аргументы используются для определения значений для параметров списка и опций в параметре словаря, они являются парами ключ-значение, где значения являются простыми типами. Их использование должно соответствовать следующему шаблону:

[positional_argument | named_argument]*

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

  • Именованные аргументы, которые происходят из списков, вызывают добавление значений в параметр списка, из которого произошёл именованный аргумент

  • Именованные аргументы, которые происходят от словарей, вызывают добавление значений в параметр словаря, из которого произошёл именованный аргумент

  • Если существует параметр словаря без явно определённых опций, это приводит к тому, что он принимает любые именованные аргументы, которые не принадлежат другому параметру списка или словаря

  • Любые оставшиеся аргументы, предоставленные для вызова функции, обрабатываются в порядке их предоставления

Примеры интеграции командной строки MySQL Shell

Использование интеграции командной строки позволяет вызывать функции API MySQL Shell проще и удобнее, чем с помощью параметра --execute. Следующие примеры демонстрируют, как использовать эту функциональность:

  • Для проверки пригодности экземпляра сервера для обновления и возврата результатов в формате JSON для дальнейшей обработки:

      $ mysqlsh -- util check-for-server-upgrade --user=root --host=localhost --port=3301 --password='password' --outputFormat=JSON --config-path=/etc/mysql/my.cnf

    Эквивалентная команда в интерактивном режиме MySQL Shell:

      mysql-js> util.checkForServerUpgrade({user:'root', host:'localhost', port:3301}, {password:'password', outputFormat:'JSON', configPath:'/etc/mysql/my.cnf'})
    
  • Для развертывания экземпляра среды тестирования InnoDB Cluster, прослушивающего порт 1234 и указания пароля для подключения:

    $ mysqlsh -- dba deploy-sandbox-instance 1234 --password=password 

    Эквивалентная команда в интерактивном режиме MySQL Shell:

    mysql-js> dba.deploySandboxInstance(1234, {password: password})
  • Для создания InnoDB Cluster, используя экземпляр среды тестирования, прослушивающего порт 1234 и указания имени mycluster:

    $ mysqlsh root@localhost:1234 -- dba create-cluster mycluster

    Эквивалентная команда в интерактивном режиме MySQL Shell:

    mysql-js> dba.createCluster('mycluster')
  • Для проверки состояния InnoDB Cluster, используя экземпляр среды тестирования, прослушивающего порт 1234:

    $ mysqlsh root@localhost:1234 -- cluster status

    Эквивалентная команда в интерактивном режиме MySQL Shell:

    mysql-js> cluster.status()
  • Для настройки MySQL Shell на включение истории команд:

    $ mysqlsh -- shell options set_persist history.autoSave true

    Эквивалентная команда в интерактивном режиме MySQL Shell:

    mysql-js> shell.options.set_persist('history.autoSave', true);

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-shell-8.4-en/command-line-integration-overview.html

Spec-Zone.ru

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