3.1 Команды MySQL Shell
MySQL Shell предоставляет команды, которые позволяют изменить среду выполнения кода редактора, например, для настройки активного языка программирования или подключения к MySQL Server. В следующей таблице перечислены команды, доступные независимо от выбранного языка. Поскольку команды должны быть доступны независимо от режима выполнения, они начинаются со специальной последовательности, символа \.
| Команда | Псевдоним/Сокращение | Описание |
|---|---|---|
| | Вывод справки о MySQL Shell или поиск в онлайн-справке. |
| | Выход из MySQL Shell. |
| В SQL режиме начать режим многострочных команд. Код кэшируется и выполняется при вводе пустой строки. | |
| | Отображение текущего статуса MySQL Shell. |
| Переключить режим выполнения на JavaScript. | |
| Переключить режим выполнения на Python. | |
| Переключить режим выполнения на SQL. | |
| | Подключиться к экземпляру MySQL. |
| Подключиться к тому же экземпляру MySQL. | |
| Отключить глобальную сессию. | |
| | Указать схему для использования. |
| | Выполнить скриптовый файл с использованием активного языка. |
| | Отобразить любые предупреждения, сгенерированные оператором. |
| | Не отображать любые предупреждения, сгенерированные оператором. |
| Просмотр и редактирование истории командной строки. | |
| Ручное обновление кэша имен автодополнения. | |
| Запрос и изменение параметров конфигурации MySQL Shell. | |
| Выполнить указанный отчет с использованием предоставленных параметров и аргументов. | |
| Выполнить указанный отчет с использованием предоставленных параметров и аргументов и обновлять результаты с регулярными интервалами. | |
| | Открыть команду в стандартном системном редакторе, затем представить ее в MySQL Shell. |
| | Настройка программы просмотра, которую MySQL Shell использует для отображения текста. |
| Отключить любую программу просмотра, которая была настроена для использования MySQL Shell. | |
| | Выполнить указанную системную команду и отобразить результаты в MySQL Shell. |
| Позволяет определять атрибуты запроса для ваших SQL-запросов. Функциональность MySQL Shell идентична функциональности MySQL-клиента. |
Команда справки
Команда \help может использоваться с параметром или без него. При использовании без параметра выводится сообщение справки общего назначения, содержащее информацию о доступных командах MySQL Shell, глобальных объектах и основных категориях справки.
При использовании с параметром, параметр используется для поиска доступной справки на основе режима, в котором в данный момент работает MySQL Shell. Параметр может быть словом, командой, функцией API или частью SQL-запроса. Существуют следующие категории:
AdminAPI- деталирует глобальный объектdbaи AdminAPI, который позволяет работать с InnoDB Cluster, InnoDB ClusterSet и InnoDB ReplicaSet.X DevAPI- детализирует модульmysqlx, а также возможности X DevAPI, которые позволяют работать с MySQL как с хранилищем документов.Shell Commands- предоставляет подробную информацию о доступных встроенных командах MySQL Shell.ShellAPI- содержит информацию о глобальных объектахshellиutil, а также модулеmysql, который позволяет выполнять SQL-запросы на серверах MySQL.SQL Syntax- точка входа для получения справки по синтаксису SQL-операторов.
Для поиска справки по теме, например, по функции API, используйте имя функции в качестве pattern. Вы можете использовать символы подстановки ? для соответствия любому одиночному символу и * для соответствия нескольким символам в поиске. Символы подстановки могут использоваться один или несколько раз в шаблоне. При поиске справки также могут использоваться следующие пространства имен:
dbaдля AdminAPImysqlxдля X DevAPImysqlдля ShellAPI для классического протокола MySQLshellдля других классов ShellAPI:Shell,Sys,Optionscommandsдля команд MySQL Shellcmdlineдля интерфейса командной строки mysqlsh
Например, для поиска справки по теме, выполните \help
и: pattern
используйте
x devapiдля поиска справки по X DevAPIиспользуйте
\cдля поиска справки по команде MySQL Shell\connectиспользуйте
getClusterилиdba.getClusterдля поиска справки по операции AdminAPIdba.getCluster()используйте
Tableилиmysqlx.Tableдля поиска справки по классу X DevAPITableпри работе MySQL Shell в режиме JavaScript, используйте
isView,Table.isViewилиmysqlx.Table.isViewдля поиска справки по функцииisViewобъектаTableпри работе MySQL Shell в режиме Python, используйте
is_view,Table.is_viewилиmysqlx.Table.is_viewдля поиска справки по функцииisViewобъектаTableпри работе MySQL Shell в режиме SQL, если существует глобальная сессия с сервером MySQL, отображается справка по SQL. Для обзора используйте
sql syntaxв качестве шаблона поиска.
В зависимости от предоставленного шаблона поиска может быть найдено одно или несколько результатов. Если только одна тема справки содержит шаблон поиска в своем заголовке, эта тема справки отображается. Если несколько заголовков тем соответствуют шаблону, но один из них является точным соответствием, эта тема справки отображается, за ней следует список других тем с совпадениями шаблона в их заголовках. Если точного соответствия не найдено, отображается список тем с совпадениями шаблона в их заголовках. Если возвращается список тем, вы можете выбрать тему для просмотра из списка, повторно введя команду с расширенным шаблоном поиска, который соответствует заголовку соответствующей темы.
Команды подключения, повторного подключения и отключения
Команда \connect используется для подключения к серверу MySQL. См. Раздел 4.3, «Подключения в MySQL Shell».
Например:
\connect root@localhost:3306
Если требуется пароль, будет запрошен пароль.
Используйте опцию --mysqlx (--mx), чтобы создать сеанс с использованием X Protocol для подключения к экземпляру сервера MySQL. Например:
\connect --mysqlx root@localhost:33060
Используйте опцию --mysql (--mc), чтобы создать ClassicSession, позволяющую использовать классический протокол MySQL для непосредственного выполнения SQL-запросов на сервере. Например:
\connect --mysql root@localhost:3306
Используйте опцию --ssh для создания или повторного использования SSH-туннеля, обеспечивающего зашифрованное подключение к экземпляру сервера MySQL. Использование команд AdminAPI не поддерживается для подключений, созданных из MySQL Shell с помощью SSH-туннелирования. Укажите URI для подключения к SSH-серверу в формате [user@]hostname[:port], за которым следует URI экземпляра MySQL, например:
\connect --ssh root@198.51.100.4:2222 root@localhost:3306
При использовании опции --ssh необходимо указать порт для подключения к экземпляру сервера MySQL в URI экземпляра MySQL.
SSH-туннель, настроенный с помощью команды \connect, должен использовать файл конфигурации SSH и файл идентификатора по умолчанию. Инструкции по настройке и дополнительную информацию о подключении через SSH-туннель из MySQL Shell см. в Разделе 4.3.7, «Использование SSH-туннеля». Вы можете настроить SSH-туннель с помощью метода shell.connect() или в командной строке для получения дополнительных параметров настройки. После создания SSH-туннель может быть использован для подключений к одному хосту от одного пользователя из одного экземпляра, независимо от используемого метода настройки.
Команда \reconnect указывается без параметров или опций. Если подключение к серверу потеряно, вы можете использовать команду \reconnect, которая заставляет MySQL Shell выполнить несколько попыток повторного подключения для сеанса с использованием существующих параметров подключения. Если эти попытки не увенчаются успехом, вы можете выполнить новое подключение, используя команду \connect и указав параметры подключения.
Команда \disconnect также указывается без параметров или опций. Команда отключает глобальный сеанс MySQL Shell (сеанс, представленный глобальным объектом session) от подключенного экземпляра сервера MySQL, позволяя закрыть подключение, но при этом продолжить использование MySQL Shell.
Если подключение к серверу потеряно, вы можете использовать команду \reconnect, которая заставляет MySQL Shell выполнить несколько попыток повторного подключения для сеанса с использованием существующих параметров подключения. Если эти попытки не увенчаются успехом, вы можете выполнить новое подключение, используя команду \connect и указав параметры подключения.
Команда Status
Команда \status отображает информацию о текущем глобальном подключении. Включая информацию о подключенном сервере, используемой кодировке, времени активности и т. д.
Команда Source
Команда \source или её алиас \. может быть использована в интерактивном режиме MySQL Shell для выполнения кода из файла скрипта по заданному пути. Например:
\source /tmp/mydata.sql
Вы можете выполнить SQL, JavaScript или Python код. Код в файле выполняется с помощью активного языка, поэтому для обработки SQL-кода MySQL Shell должен быть в SQL-режиме.
Поскольку код выполняется с использованием активного языка, выполнение скрипта на языке, отличном от языка текущего режима выполнения, может привести к непредвиденным результатам.
Для совместимости с клиентом mysql, только в SQL-режиме, вы можете выполнить код из файла скрипта с помощью команды source без обратного слэша и необязательного разделителя SQL. source или алиас \. (который не использует разделитель SQL) может быть использован как в интерактивном режиме MySQL Shell для SQL для непосредственного выполнения скрипта, так и в файле SQL-кода, обрабатываемом в пакетном режиме, для выполнения дополнительного скрипта изнутри файла. Таким образом, в MySQL Shell в SQL-режиме вы можете теперь выполнить скрипт в файле /tmp/mydata.sql из интерактивного режима или пакетного режима, используя любую из этих трех команд:
source /tmp/mydata.sql;
source /tmp/mydata.sql
\. /tmp/mydata.sql
Команда \source /tmp/mydata.sql также допустима, но только в интерактивном режиме.
В интерактивном режиме сама команда \source, \. или source добавляется в историю MySQL Shell, но содержимое выполняемого файла скрипта в историю не добавляется.
Команда Use
Команда \use позволяет выбрать активную схему, например:
\use schema_name Команда \use требует, чтобы был активен глобальный сеанс разработки. Команда \use устанавливает текущую схему на указанную schema_name и обновляет переменную db до объекта, представляющего выбранную схему.
Команда History
Команда \history выводит список ранее введённых команд в MySQL Shell. Выполнение команды \history отобразит записи истории в порядке их ввода с номером записи истории, который можно использовать с командой \history delete
. entry_number
Команда \history предоставляет следующие варианты:
Используйте
\history saveдля ручного сохранения истории.Используйте
\history delete entrynumberдля удаления отдельной записи истории с заданным номером.Используйте
\history deleteдля удаления записей истории в диапазоне заданных номеров. Еслиfirstnumber-lastnumberвыходит за пределы последнего найденного номера записи истории, записи истории удаляются до и включая последнюю запись.lastnumberИспользуйте
\history deleteдля удаления записей истории сnumber-до и включая последнюю запись.numberИспользуйте
\history delete -для удаления указанного количества записей истории, начиная с последней и двигаясь назад. Например,number\history delete -10удаляет последние 10 записей истории.Используйте
\history clearдля удаления всей истории.
История по умолчанию не сохраняется между сеансами, поэтому при выходе из MySQL Shell история, введённая в текущем сеансе, теряется. Если нужно сохранить историю между сеансами, активируйте опцию MySQL Shell history.autoSave. Подробности см. в Разделе 5.5, «История кода».
Команда Rehash
При отключённой функции кэширования автодополнения имён, используйте команду \rehash для ручного обновления кэша. Например, после загрузки новой схемы командой \use , выполните schema\rehash для обновления кэша автодополнения имён. После этого автодополнение будет учитывать имена, используемые в базе данных, и вы сможете автоматически дополнять текст, например, имена таблиц и т. д. См. Раздел 5.3, «Автодополнение кода».
Команда Option
Команда \option позволяет запросить и изменить параметры конфигурации MySQL Shell во всех режимах. Используйте команду \option для просмотра установленных параметров конфигурации и информации о последнем изменении их значения. Также можно использовать её для установки и отключения параметров, как для сеанса, так и для сохранения в файле конфигурации MySQL Shell. Инструкции и список параметров конфигурации см. в Разделе 14.4, «Настройка параметров MySQL Shell».
Команды Pagers
Вы можете настроить MySQL Shell для использования внешнего пайпера для чтения длинного вывода на экране, например, онлайн справки или результатов SQL-запросов. См. Раздел 4.6, «Использование Pagera».
Команды Show и Watch
Команда \show выполняет указанный отчёт, который может быть встроенным отчётом MySQL Shell или пользовательским отчётом, зарегистрированным в MySQL Shell. Вы можете указать стандартные опции для команды и любые опции или дополнительные аргументы, которые поддерживает отчёт. Команда \watch выполняет отчёт так же, как и команда \show, но затем обновляет результаты через равные промежутки времени до отмены команды с помощью Ctrl + C. Инструкции см. в Разделе 11.1.5, «Выполнение отчётов MySQL Shell».
Команда Edit
Команда \edit (\e) открывает команду в системном редакторе по умолчанию для редактирования, затем отображает отредактированную команду в MySQL Shell для выполнения. Команду также можно вызвать с помощью комбинации клавиш Ctrl-X Ctrl-E. Подробнее см. в Разделе 5.4, «Редактирование кода».
Команда Система
Команда \system (\!) выполняет операционную команду, указанную в качестве аргумента, затем отображает вывод команды в MySQL Shell. MySQL Shell возвращает ошибку, если не удалось выполнить команду. Вывод команды возвращается так, как он представлен операционной системой, и не обрабатывается функцией обертки JSON MySQL Shell или любым внешним инструментом просмотра вывода, который вы указали.
Команда query_attributes
Команда query_attribute и метод session.setQueryAttributes позволяют определять атрибуты запросов для ваших SQL-запросов. Функциональность MySQL Shell идентична функциональности MySQL-клиента.
Настройка атрибутов запросов поддерживается только для классического протокола MySQL. Она не поддерживается для сеансов протокола X.
Для получения дополнительной информации, см.:
Пример настройки атрибутов запроса
В следующих примерах устанавливаются атрибуты att1 и att2 со значениями val1 и val2 соответственно:
-
SQL
SQL> \query_attributes att1 val1 att2 val2 -
JavaScript
JS> session.setQueryAttributes({att1:"val1",att2:"val2"}) -
Python
PY> session.set_query_attributes({att1:"val1",att2:"val2"})
Пример получения атрибутов запроса
Атрибуты могут быть получены с помощью функции.
Например:
-
SQL
SQL> select mysql_query_attribute_string("att1") as "Attribute 1", mysql_query_attribute_string("att2")as "Attribute 2" +-------------+-------------+ | Attribute 1 | Attribute 2 | +-------------+-------------+ | v1 | v2 | +-------------+-------------+ -
JavaScript
JS> session.runSql("select mysql_query_attribute_string("att1") as "Attribute 1", mysql_query_attribute_string("att2")as "Attribute 2"')") +-------------+-------------+ | Attribute 1 | Attribute 2 | +-------------+-------------+ | v1 | v2 | +-------------+-------------+
© 2025 Oracle
Licensed under the GPLv2 License.