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 для подключения к экземпляру сервера 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.6, «Использование SSH-туннеля». Вы можете настроить SSH-туннель с помощью метода shell.connect() или в командной строке, чтобы получить дополнительные параметры настройки. После создания SSH-туннель может быть использован для нескольких подключений к тому же хосту от одного пользователя с одного экземпляра, независимо от метода первоначального создания.
Команда \reconnect указывается без параметров или опций. Если подключение к серверу потеряно, можно использовать команду \reconnect, которая заставляет MySQL Shell выполнить несколько попыток повторного подключения к сеансу с использованием существующих параметров подключения. Если эти попытки окажутся неудачными, можно выполнить новое подключение с помощью команды \connect и указанием параметров подключения.
Команда \disconnect также указывается без параметров или опций. Команда отключает глобальный сеанс MySQL Shell (сеанс, представленный глобальным объектом session) от текущего подключенного экземпляра сервера MySQL, что позволяет закрыть подключение, но продолжить работу с MySQL Shell.
Если подключение к серверу потеряно, можно использовать команду \reconnect, которая заставляет MySQL Shell выполнить несколько попыток повторного подключения к сеансу с использованием существующих параметров подключения. Если эти попытки окажутся неудачными, можно выполнить новое подключение с помощью команды \connect и указанием параметров подключения.
Команда статуса
Команда \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 выводит список команд, которые вы ранее вводили в 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. Инструкции и список конфигурационных параметров см. в Разделе 13.4, «Настройка параметров MySQL Shell».
Команды просмотрщика
Вы можете настроить MySQL Shell для использования внешнего просмотрщика для чтения длинного вывода на экране, например, онлайн-справки или результатов SQL-запросов. См. Раздел 4.6, «Использование просмотрщика».
Команды Show и Watch
Команда \show запускает указанный отчёт, который может быть встроенным отчётом MySQL Shell или пользовательским отчётом, зарегистрированным в MySQL Shell. Вы можете указать стандартные параметры для команды и любые опции или дополнительные аргументы, которые поддерживает отчёт. Команда \watch запускает отчёт аналогично команде \show, но затем обновляет результаты с регулярными интервалами до тех пор, пока вы не отменаете команду с помощью Ctrl + C. Инструкции см. в Разделе 10.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.