WebMoney: WMZ Z294115950220 WMR R409981405661 WME E134003968233 |
Visa 4274 3200 2453 6495 |
Эта секция объясняет, как выполнение кода работает в MySQL Shell. MySQL Shell может выполнить SQL, JavaScript или Python,
но только один язык может быть активным за один раз.
Активный режим определяет, как выполненные запросы обрабатываются:
Когда MySQL Shell работает в интерактивном режиме, активируйте
определенный язык командами:
Когда MySQL Shell работает в пакетном режиме, активируйте определенный
язык, передав любой из этих параметров командной строки:
Используйте MySQL Shell, чтобы выполнить содержание файла
Используйте MySQL Shell, чтобы выполнить содержание файла
Используйте MySQL Shell, чтобы выполнить содержание файла
С MySQL Shell 8.0.16 можно выполнить единственный SQL-оператор в то время,
как другой язык активен, вводя команду Для SQL-оператора не нужно никакое дополнительное цитирование
и дополнительный разделитель запросов. Команда принимает только единственный
SQL-запрос на одной строке. С этим форматом MySQL Shell не переключает
режим, как это было бы, если вы вводите
Режим по умолчанию MySQL Shell обеспечивает интерактивное выполнение
операций по базе данных, которые вы печатаете в командной строке.
Эти операции могут быть написаны на JavaScript, Питоне или SQL, в зависимости
от текущего режима. Когда выполнено, результаты операции показаны на экране.
Как с любым другим языковым интерпретатором, MySQL Shell очень строг
относительно синтаксиса. Например, следующий отрывок JavaScript открывает
сессию для сервера MySQL, затем читает и печатает документы в коллекции: Как замечено выше, вызов Выполнение SQL и операции CRUD (упоминаются выше). На основе вышеупомянутых правил, запросы в MySQL Shell должны были в
интерактивном режиме установить сессию, запросить
и напечатать документы в коллекции: Никакого вызова Возможно определить запросы на нескольких строках. В режиме Python
или JavaScript этот способ автоматически включен, когда блок запросов
начинается как в определениях функции, условных операторах, циклов и т.п.
В режиме SQL многострочный формат начинается, когда выдана команда
Как только многострочный режим начат, впоследствии
введенные запросы кэшируются. Например: Вы не можете использовать многострочный режим, когда вы используете
команду MySQL Shell поддерживает автозавершение текста, предшествующего курсору,
нажимая Tab.
Команда
может быть автоматически заполнена в любом из языковых режимов. Например,
ввод Автозавершение поддерживает следующие текстовые объекты:
имена глобального объекта, например,
По умолчанию автозавершение позволено, чтобы изменить это поведение,
посмотрите
про настройку автозавершения. Как только вы активируете автозавершение, если у текста, предшествующего
курсору, есть точно одно возможное соответствие, текст автоматически
закончен. Если автозавершение находит многократные возможные соответствия,
оно сигналит. Если Когда MySQL Shell в режиме SQL, автозавершение пытается закончить любое
слово со всеми возможными завершениями. В SQL может быть
автоматически заполнено следующее:
Как специальное исключение, если обратный апостроф найден,
только имена таблиц рассматривают для завершения.
В режиме SQL автозавершение не учитывает контекст, означая, что нет никакой
фильтрации завершений на основе грамматики SQL.
Другими словами, автоматическое заполнение
В режимах JavaScript и Python последовательность, которая будет закончена,
определяется справа налево, начинаясь в текущей позиции курсора, когда
нажата Tab. Содержание в вызовах
метода проигнорировано, но должно быть синтаксически правильным.
Это означает, что последовательности, комментарии и вложенные вызовы метода
должны все быть правильно закрыты и уравновешены. Это позволяет методам быть
обработанными правильно. Например, когда вы вводите: По умолчанию автозавершение позволено. Эта секция объясняет, как отключить
автозавершение и использовать команду Чтобы отключить это поведение, вы можете:
Когда кэш автозавершения выключен, можно вручную обновить автозавершение
текстовых объектов командой Чтобы отключить автозавершение в то время, как MySQL Shell работает,
используют следующие ключи Оба ключа устанавливаются в Используйте Чтобы изменить кэширование автозавершения имен для JavaScript и
Python в то время, как работает MySQL Shell, надо:
Снова можно использовать Код, который вы вводите в MySQL Shell, сохранен в истории, к которой можно
получить доступ, используя клавиши вверх и вниз. Можно также искать историю,
используя функцию поиска истории. Чтобы искать по истории, используйте
Ctrl+R, чтобы искать назад или
Ctrl+S, чтобы искать вперед.
Как только поиск активен, он ищет символы любых последовательностей, которые
соответствуют им в истории, и показывает первое совпадение. Используйте
Ctrl+S или
Ctrl+R, чтобы искать дальнейшие
соответствия текущему критерию поиска. Ввод большего количества знаков
совершенствует поиск. Во время поиска можно нажать клавиши курсора, чтобы
двигаться по истории с текущего результата поиска. Нажмите Enter, чтобы
принять показанный вариант. Используйте Ctrl+C
, чтобы отменить поиск. Параметр конфигурации Записи истории записаны в
Команда MySQL Shell Только код, который вы печатаете в интерактивном режиме в ответ на
приглашение MySQL Shell, добавляется к истории. Код, который выполняется
косвенно или внутренне, например, когда выполнена команда
Можно настроить записи, которые добавляются к истории, используя опцию
Последовательности, которые соответствуют образцам
Обратите внимание на то, что независимо от набора фильтров в черном
списке истории, последний выполненный запрос всегда доступен, нажимая
стрелки, чтобы можно было сделать исправления, не перепечатывая его.
Если фильтрация относится к последнему выполненному запросу, он
удален из истории, как только введен другой запрос, или если вы немедленно
выходите из MySQL Shell после выполнения запроса. MySQL Shell обеспечивает пакетное выполнение кода из:
Как альтернатива пакетному выполнению можно также управлять MySQL Shell из
терминала, см.
раздел 4.7. В пакетном режиме вся логика команды, рассмотренная в
разделе 4.2 недоступна, только действительный код
для активного языка может быть выполнен. Обрабатывая код SQL, это
выполняет запросы пошагово, используя следующую логику:
прочитать/обработать/напечатать результат. Обрабатывая код не SQL, это
загружает его полностью из входного источника и выполняет как одно целое.
Используйте опцию
В этом случае, независимо от источника, он прочитан построчно
и обработан с использованием интерактивного трубопровода. Ввод обрабатывается на основе текущего языка программирования, выбранного
в MySQL Shell, который по умолчанию JavaScript.
Можно изменить язык программирования по умолчанию, используя опцию
Этот пример показывает, как загрузить код JavaScript из
файла для пакетной обработки данных: Здесь файл JavaScript перенаправляется к стандартному
вводу для выполнения: Этот пример показывает, как перенаправить код SQL к стандартному
вводу для выполнения:
В Linux можно создать выполнимые скрипты, которые работают с
MySQL Shell включением строки Файл скрипта должен быть отмечен как исполняемый
в файловой системе. Запуск скрипта вызывает MySQL Shell
и выполняет содержание скрипта. MySQL Shell может напечатать результаты в форматах таблицы, разделенном
табуляцией, вертикальном или JSON. С MySQL Shell 8.0.14 опция
Если опция Чтобы помочь объединить MySQL Shell с внешними инструментами, можно
использовать опцию
Опция Формат таблицы используется по умолчанию для печати наборов результатов,
когда MySQL Shell находится в интерактивном режиме. Результаты запроса
представлены как отформатированная таблица для лучшего вида и
чтобы помочь анализу. Чтобы получить этот выходной формат, работая в пакетном режиме, запустите
MySQL Shell с опцией
Этот формат используется по умолчанию для печати наборов результатов,
когда MySQL Shell работает в пакетном режиме, чтобы произвести лучший вывод
для автоматизированного анализа. Чтобы получить этот выходной формат, работая в интерактивном режиме,
запустите MySQL Shell с опцией
Вертикальный формат печатает наборы результатов вертикально вместо
горизонтальной таблицы, таким же образом как когда используется
терминатор запроса Чтобы получить этот выходной формат, запустите MySQL Shell с опцией
Параметры формата JSON печатают наборы результатов как любой сырой JSON
( В пакетном режиме, чтобы помочь объединить MySQL Shell с внешними
инструментами, можно использовать опцию
Формат JSON (красивый) в интерактивном режиме
Сырой формат JSON в интерактивном режиме
Чтобы помочь объединить MySQL Shell с внешними инструментами, можно
использовать опцию
Определение
Когда обертывание JSON включено, любое значение, которое было
определено для опции Определение
Вывод MySQL Shell с JSON Когда операция выполняется, в дополнение к любым возвращенным результатам,
возвращена некоторая дополнительная информация. Это включает такую информацию,
как количество затронутых строк, предупреждений, продолжительности и так
далее, когда любое из этих условий верно:
Когда формат JSON используется для вывода, метаданные возвращены как часть
объекта JSON. В интерактивном режиме метаданные печатаются после результатов.
MySQL Shell выставляет большую часть своей функциональности, используя
синтаксис команды API, который позволяет вам легко объединить
mysqlsh с другими инструментами.
Эта функциональность подобна использованию опции
Когда вы запускаете MySQL Shell в командной строке, используя следующий
специальный синтаксис, Где следующее применяется:
Список Есть два типа аргументов, которые могут использоваться в списке
аргументов: позиционные параметры и параметры, передаваемые по имени.
Позиционные параметры, например, простые типы, такие как последовательности,
числа, булевы, пустые. Параметры, передаваемые по имени, это пары значения
ключа, где значения это простые типы. Их использование должно
придерживаться следующего образца: Правила для использования этого синтаксиса:
Эти аргументы тогда преобразовываются в аргументы, переданные к вызову
метода следующим образом:
Используя интеграцию API, запрос команд MySQL Shell легче, чем с опцией
Это отображается эквивалентной команде в MySQL Shell: Это отображается к эквивалентной команде в MySQL Shell: Это отображается к эквивалентной команде в MySQL Shell: Это отображается к эквивалентной команде в MySQL Shell: Это отображается к эквивалентной команде в MySQL Shell:
Глава 4. Выполнение кода MySQL Shell
4.1. Активный язык
\sql
, \js
или
\py
.--js
,
--py
или
--sql
. Режимом по умолчанию, если ни один не
определяется, является JavaScript.code.sql
как SQL.
shell>
mysqlsh --sql < code.sql
code.js
как JavaScript.
shell>
mysqlsh < code.js
code.py
как Python.
shell>
mysqlsh --py < code.py
\sql
немедленно сопровождаемую SQL-оператором. Например:
\sql select * from sakila.actor limit 3;
\sql
. После того, как SQL-оператор был выполнен,
MySQL Shell остается в режиме JavaScript или Питона.4.2.
Интерактивное выполнение кода
var mySession = mysqlx.getSession('user:pwd@localhost');
var result = mySession.world_x.countryinfo.find().execute();
var record = result.fetchOne();
while(record)
{
print(record);
record = result.fetchOne();
}
find()
сопровождается функцией execute()
.
Команды базы данных CRUD на самом деле выполняются на MySQL Server только
когда вызвана execute()
.
Однако, работая с MySQL Shell в интерактивном режиме,
execute()
неявно вызвана каждый раз, когда
вы нажимаете Return
. Тогда результаты операции
получены и показаны на экране. Правила для того, когда необходимо вызвать
execute()
или нет, следующие:
execute()
становится опциональным в:
Collection.add()
Collection.find()
Collection.remove()
Collection.modify()
Table.insert()
Table.select()
Table.delete()
Table.update()
execute()
обязателен, чтобы выполнить операцию.Result
, информация, содержавшаяся в
объекте Result, автоматически показана на экране. Функции, которые возвращают
объект результата, включают:
mysql
и mysqlx
:
startTransaction()
commit()
rollback()
dropSchema()
dropCollection()
ClassicSession.runSql()
mysql-js>
var mySession = mysqlx.getSession('user:pwd@localhost');
execute()
не надо,
объект результата автоматически печатается.
mysql-js>
mySession.world_x.countryinfo.find();
Многострочная поддержка
\
.
mysql-sql>
\
... create procedure get_actors()
... begin
... select first_name from sakila.actor;
... end
...
mysql-sql>
\sql
с запросом, чтобы выполнить
единственный SQL-оператор в то время, как другой язык активен.
Команда принимает только единственный SQL-запрос на одной строке.4.3. Автозавершение кода
\con
и нажатие
Tab
автоматически заполняет
\connect
.
Автозавершение доступно для языковых ключевых слов SQL, JavaScript и Python
в зависимости от текущего
активного языка в приложении.session
,
db
, dba
,
shell
, mysql
,
mysqlx
и подобные.session.connect()
,
dba.configureLocalInstance()
и подобные.shell.options.verbose
.col.find().where().execute().fetchOne()
.
Tab
нажат снова, будет
показан список возможных завершений. Если никакое соответствие не найдено,
никакого автозавершения не происходит.
Автоматическое заполнение SQL
SHOW CREATE TABLE
,
ALTER TABLE
,
CREATE TABLE
и подобные.
SEL
вернет
SELECT
, но это могло также
включать таблицу selfies.
Автоматически заполнение JavaScript и Python
нажатие Tab
заставило бы автозавершение пытаться закончить текст
print(db.user.select().where("user in ('foo', 'bar')").e
db.user.select().where().e
,
но этот недействительный код приводит к неопределенному поведению.
Любой пробел, включая новые строки, между
символами, отделенными .
, проигнорирован.
Настройка автозавершения
\rehash
MySQL Shell. Автозавершение использует кэш объектов имен базы данных, о
которых знает MySQL Shell. Когда автозавершение позволено, этот кэш
автоматически обновляется. Например, каждый раз, когда вы загружаете схему,
движок автозавершения обновляет кэш на основе текстовых объектов,
найденных в схеме, чтобы можно было автоматически заполнить имена
таблиц и так далее.--no-name-cache
.autocomplete.nameCache
и
devapi.dbObjectHandles
в
shell.options
, чтобы отключить автозавершение
в то время, как MySQL Shell работает.\rehash
.
вызывает перезагрузку кэша имен на основе текущей активной схемы.shell.options
:
autocomplete.nameCache: boolean
кэширование автозавершения имени для использования SQL.devapi.dbObjectHandles: boolean
кэширование автозавершения имени для использования объектом X DevAPI
db
object, например,
db.mytable
,
db.mycollection
.true
по умолчанию и в false
, если использована
опция
--no-name-cache
.
Чтобы изменить кэширование автозавершения имен для SQL в то время,
как работает MySQL Shell, надо:
shell.options['autocomplete.nameCache']=true
\rehash
, чтобы обновить
кэш имен вручную.
shell.options['devapi.dbObjectHandles']=true
\rehash
,
чтобы обновить кэш имен вручную.4.4.
Кодовая история MySQL Shell
shell.options["history.maxSize"]=
определяет максимальное число записей, чтобы сохранить в
истории. По умолчанию 1000. Если количество записей истории превышает
максимум, самые старые записи удалены. Если максимум установлен в 0, никакие
записи истории не сохранены.number
~/.mysqlsh/history
в Linux и Mac или в
%AppData%\MySQL\mysqlsh\history
в Windows.
Пользовательский путь конфигурации может быть отвергнут на всех платформах,
определив переменную окружения
MYSQLSH_USER_CONFIG_HOME
. Значение этой
переменной заменяет %AppData%\MySQL\mysqlsh\
в
Windows или ~/.mysqlsh/
в Unix.
Файл истории создается автоматически MySQL Shell и читаем только владельцем.
Если файл истории не может быть прочитан или записан, MySQL Shell
регистрирует сообщение об ошибке и пропускает операцию чтения или записи.\history
показывает
записи истории в порядке ввода вместе с их номером записи, который может
использоваться с командой \history delete
.
Можно вручную удалить отдельные записи истории, указанный числовой диапазон
записей истории или хвост истории. Можно также использовать
entry_number
\history clear
, чтобы
удалить всю историю вручную. Когда вы выходите из MySQL Shell, если опция
shell.options["history.autoSave"]
=
true
, записи истории, которые остаются в файле
истории, сохранены и их нумерация перезагружается, чтобы начаться с 1. Если
опция shell.options["history.autoSave"]
=
false
, что является значением по умолчанию,
файл истории очищен.\source
, не добавляется к истории. Когда вы
вводите многострочную команду, символы новой строки исчезают из записи
истории. Если тот же самый код введен многократно, он сохранен в истории
только однажды, уменьшив дублирование.--histignore
. Кроме того, используя MySQL Shell в
режиме SQL, можно формировать последовательности, которые не должны быть
добавлены к истории. Этот черный список истории также применяется, когда вы
используете \sql
, чтобы выполнить единственные
SQL-операторы в то время, как другой язык активен.IDENTIFIED
или
PASSWORD
по умолчанию не добавляются к истории.
Чтобы формировать дальнейшие последовательности, используйте опцию
--histignore
или
shell.options["history.sql.ignorePattern"]
.
Многократные строки могут быть определены через двоеточие (:).
Соответствие истории использует нечувствительный к регистру образец.
Поддержаны подстановочные знаки * (соответствует каким-либо 0 или больше
знакам) и ? (соответствует точно 1 символу).
Последовательности по умолчанию определяются как
"*IDENTIFIED*:*PASSWORD*"
.4.5.
Пакетное выполнение кода
--interactive
(или -i
), чтобы настроить MySQL Shell, чтобы обработать входной источник, как
будто это выполняется в интерактивном режиме. Такой подход активирует все
опции, обеспеченные интерактивным режимом, который будет использоваться в
пакетной обработке данных.defaultMode
. Файлы с расширениями
.js
,
.py
и .sql
всегда обрабатываются в соответствующем языковом режиме, независимо от языка
программирования по умолчанию.
shell>
mysqlsh --file code.js
shell>
mysqlsh < code.js
shell>
echo "show databases;" | mysqlsh --sql --uri user@192.0.2.20:33060
Выполнимые скрипты
#!
как первой
строки. Эта строка должна предоставить полный путь к MySQL Shell и включать
опцию
--file
:
#!/usr/local/mysql-shell/bin/mysqlsh --file
print("Hello World\n");
4.6. Выходные форматы
resultFormat
может использоваться, чтобы
определить любой из этих выходных форматов как постоянный
для всех сессий или только для текущей сессии. Изменение этого выбора
немедленно вступает в силу. Для инструкций, как установить параметры
конфигурации MySQL Shell, смотрите
раздел
8.4. Альтернативно, параметр командной строки
--result-format
или его псевдонимы
(
--table
,
--tabbed
,
--vertical
) может использоваться при запуске, чтобы определить
выходной формат для сессии. Для списка параметров командной строки посмотрите
раздел A.1.resultFormat
не была определена,
когда MySQL Shell находится в интерактивном режиме, формат по умолчанию для
печати набора результатов является отформатированной таблицей, а
когда MySQL Shell находится в пакетном режиме, формат по умолчанию для печати
набора результатов является разделенным табуляциями. Когда вы устанавливаете
умолчание, используя опцию resultFormat
, это
умолчание применяется в интерактивном и в пакетном режимах.--json
, чтобы управлять JSON для всего вывода
MySQL Shell, когда вы запускаете MySQL Shell из командной строки. Когда
обертывание JSON включено, MySQL Shell производит красивый JSON
или сырой JSON и значение опции resultFormat
проигнорировано. Когда обертывание JSON выключают или не затребовали для
сессии, наборы результатов произведены в формате, определенном опцией
resultFormat
.outputFormat
устарела.
Эта опция объединила обертывание JSON и функции печати результата.
Если это все еще определяется в вашем конфигурационном файле MySQL Shell или
скриптах, делается следующее:
json
или
json/raw
для
outputFormat
активирует JSON с
симпатичным или сырым JSON соответственно.table
,
tabbed
или vertical
для outputFormat
выключает обертывание JSON и
устанавливает параметр конфигурации resultFormat
для сессии к соответствующему значению.4.6.1. Формат таблицы
--result-format=table
(или псевдонимом
--table
) или задайте параметр конфигурации
resultFormat
как
table
.
mysql-sql>
select * from sakila.actor limit 3;
+----------+-------------+----------+--------------------+
| actor_id | first_name| l ast_name | last_update |
+----------+-------------+----------+--------------------+
| 1 | PENELOPE | GUINESS | 2006-02-15 4:34:33 |
| 2 | NICK | WAHLBERG | 2006-02-15 4:34:33 |
| 3 | ED | CHASE | 2006-02-15 4:34:33 |
+----------+-------------+----------+--------------------+
3 rows in set (0.00 sec)
mysql-sql>
4.6.2.
Формат с символами табуляции
--result-format=tabbed
(или псевдонимом
--tabbed
) или установите параметр конфигурации MySQL Shell
resultFormat
в
tabbed
.
>
echo "select * from sakila.actor limit 3;" | mysqlsh --classic --uri user@192.0.2.20:33460
actor_idfirst_namelast_name last_update
1 PENELOPE GUINESS 2006-02-15 4:34:33
2 NICK WAHLBERG 2006-02-15 4:34:33
3 ED CHASE 2006-02-15 4:34:33
4.6.3. Вертикальный формат
\G
для запроса SQL.
Вертикальный формат более удобочитаемый там, где есть более
длинные текстовые строки.--result-format=vertical
(или ее псевдонимом
--vertical
) или установите параметр конфигурации MySQL Shell
resultFormat
в
vertical
.4.6.4. Формат вывода JSON
json/raw
) или красивый JSON
(json
). Чтобы получить этот выходной формат,
запустите MySQL Shell с опцией
--result-format=json
(для красивого JSON) или
с
--result-format=json/raw
или установите
параметр конфигурации MySQL Shell resultFormat
в
json
(для красивого JSON) или в
json/raw
.
--json
, чтобы управлять JSON для всего вывода, когда вы
запускаете MySQL Shell из командной строки. Когда обертывание JSON включено,
MySQL Shell производит по умолчанию красивый JSON, значение опции
resultFormat
проигнорировано. Для инструкций
посмотрите
раздел 4.6.5.
mysql-sql>
select * from sakila.actor limit 3;
{
"duration": "0.00 sec",
"info": "",
"row_count": 3,
"rows": [
[
1,
"PENELOPE",
"GUINESS",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
],
[
2,
"NICK",
"WAHLBERG",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
],
[
3,
"ED",
"CHASE",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
]
],
"warning_count": 0
}
mysql-sql>
mysql-sql>
select * from sakila.actor limit 3;
{"duration":"0.00 sec","info":"","row_count":3,"rows":[[1,"PENELOPE","GUINESS",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}],[2,"NICK","WAHLBERG",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}],[3,"ED","CHASE",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}]],"warning_count":0}
mysql-sql>
4.6.5. Обертка JSON
--json
, чтобы управлять JSON, когда вы
запускаете MySQL Shell из командной строки. Опция
--json
вступает в силу только для сессии,
для которой определяется.--json
,
--json=pretty
или
--json=raw
включает JSON для сессии. С
--json=pretty
или без указанного значения генерируется красивый
JSON. С
--json=raw
генерируется сырой JSON.resultFormat
в конфигурационном файле или в командной строке (опцией
--result-format
) проигнорировано.--json=off
выключает JSON для сессии.
Когда обертывание JSON выключают или не затребовали для сессии, наборы
результатов произведены в формате, определенном опцией
resultFormat
.
shell>
echo "select * from sakila.actor limit 3;" | mysqlsh --json=raw --sqlc --uri user@192.0.2.20:3306
{"duration":"0.00 sec","info":"","row_count":3,"rows":[[1,"PENELOPE","GUINESS",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}],[2,"NICK","WAHLBERG",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}],[3,"ED","CHASE",{"year":2006,"month":1,"day":15,"hour":4,"minute":34,"second":33.0}]],"warning_count":0}
shell>echo "select * from sakila.actor limit 3;" | mysqlsh --json --sqlc --uri user@192.0.2.20:3306
или
shell>echo "select * from sakila.actor limit 3;" | mysqlsh --json=pretty --sqlc --uri user@192.0.2.20:3306
{
"duration": "0.00 sec",
"info": "",
"row_count": 3,
"rows": [
[
1,
"PENELOPE",
"GUINESS",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
],
[
2,
"NICK",
"WAHLBERG",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
],
[
3,
"ED",
"CHASE",
{
"year": 2006,
"month": 1,
"day": 15,
"hour": 4,
"minute": 34,
"second": 33.0
}
]
],
"warning_count": 0
}
shell>
4.6.6. Метаданные результата
4.7.
Интерфейс командной строки API
--execute
, но интерфейс команды использует упрощенный синтаксис,
который уменьшает цитирование и возможность экранировки, которая может
требоваться терминалами. Например, если вы хотите создать кластер InnoDB,
используя скрипт для bash,
вы могли бы использовать эту функциональность.
Следующие объекты MySQL Shell доступны:
dba
глобальный объект для доступа к
функциям кластера InnoDB.cluster
глобальный объект для доступа к кластеру InnoDB.shell
MySQL Shell.shell.options
для формирования
опций MySQL Shell.util
глобальный объект для доступа к
утилитам MySQL Shell.
Синтаксис интеграции командной строки API
--
указывает
на конец списка вариантов после того, как это будут рассматривать как команду
и ее аргументы.
mysqlsh [options] --
shell_object
object_method
[arguments
]
shell_object
последовательность, которая передается глобальному объекту MySQL Shell.
object_method
название метода, предоставленного
shell_object
.
Имена методов могут быть обеспечены JavaScript, Python или
альтернативной командной строкой в дружественном формате, где все известные
методы используют все строчные буквы, и слова отделены дефисами.
Название object_method
автоматически преобразовывается из стандартного имени JavaScript camelCase,
где все изменения регистра заменяются -
и превращаются в строчные буквы. Например,
getCluster
станет
get-cluster
.arguments
аргументы, переданные
object_method
, когда это вызывают.
shell_object
должен соответствовать одному из выставленных глобальных объектов, и
object_method
должен соответствовать одному из методов глобального объекта в одном из
допустимых форматов (JavaScript, Python или дружественная командная строка).
Если они не соответствуют действительному глобальному объекту и его методам,
MySQL Shell завершается с кодом 10.
Синтаксис аргумента интеграции командной строки API
arguments
дополнительный, и все аргументы должны следовать синтаксису, подходящему
для использования командной строки, как описано в этой секции. Например,
специальных символов, которые обработаны системной оболочкой
(bash,
cmd и т.п.)
нужно избежать, и если цитирование необходимо, только цитирование
родительской оболочки нужно рассмотреть. Другими словами, если
foo bar
используется в качестве параметра в bash
, кавычки убраны, и экранировка обработана.
[ positional_argument ]* [ { named_argument* } ]* [ named_argument ]*
arguments
в том порядке, в каком
они появляются в командной строке.
Примеры API-интерфейса
--execute
. Следующие примеры показывают, как
использовать эту функциональность:
$
mysqlsh -- util check-for-server-upgrade \
{ --user=root --host=localhost --port=3301 } --password='password' \
--outputFormat=JSON --config-path=/etc/mysql/my.cnf
mysql-js>
util.checkForServerUpgrade({user:'root', host:'localhost', port:3301}, {password:'password', outputFormat:'JSON', configPath:'/etc/mysql/my.cnf'})
$
mysqlsh -- dba deploy-sandbox-instance 1234 --password=
password
mysql-js>
dba.deploySandboxInstance(1234, {password:
password
})mycluster
:
$
mysqlsh root@localhost:1234 -- dba create-cluster mycluster
mysql-js>
dba.createCluster('mycluster')
$
mysqlsh root@localhost:1234 -- cluster status
mysql-js>
cluster.status()
$
mysqlsh -- shell.options set_persist history.autoSave true
mysql-js>
shell.options.set_persist('history.autoSave', true);
Найди своих коллег! |
Вы можете направить письмо администратору этой странички, Алексею Паутову.