Spec-Zone.ru › MySQL Shell 9.2

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 (см. раздел 14.4 «Настройка параметров MySQL Shell»).

  • util: предоставляет доступ к утилитам MySQL Shell. См. главу 12, Утилиты 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 автоматически преобразуется из стандартного имени JavaScript camelCase, где все изменения регистра заменяются на - и приводятся к нижнему регистру. Например, 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. Если вы не знаете, как оболочка вашей системы обрабатывает эти последовательности символов при разборе команды, вам следует избегать их. Например, для передачи параметра с кавычками как части параметра, например, “list, of, names”, одного синтаксиса в командной строке недостаточно. Вам нужно использовать синтаксис вашей оболочки для экранирования этих кавычек. В противном случае 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-9.2-en/command-line-integration-overview.html

Spec-Zone.ru

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