6.5.1.2 Команды клиента mysql
mysql отправляет каждое SQL-утверждение, которое вы вводите, на сервер для выполнения. Также существует набор команд, которые сам mysql интерпретирует. Для просмотра списка этих команд введите help или \h в приглашении mysql>:
mysql> help
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given
outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing
binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
query_attributes Sets string parameters (name1 value1 name2 value2 ...)
for the next query to pick up.
ssl_session_data_print Serializes the current SSL session data to stdout
or file.
For server side help, type 'help contents'
Если mysql вызывается с параметром --binary-mode, все команды mysql отключаются, за исключением charset и delimiter в неинтерактивном режиме (для ввода, перенаправленного в mysql, или загруженного с помощью команды source).
Каждая команда имеет длинную и короткую формы. Длинная форма нечувствительна к регистру; короткая — чувствительна. Длинную форму можно дополнить необязательным символом-разделителем «точка с запятой», но короткую — нельзя.
Использование команд короткой формы внутри многострочных /*
... */ комментариев не поддерживается. Команды короткой формы работают внутри однострочных /*! ... */ комментариев версии, а также /*+ ... */ комментариев с подсказками оптимизатора, которые хранятся в определениях объектов. Если есть опасения, что комментарии с подсказками оптимизатора могут храниться в определениях объектов таким образом, что файлы дампов при повторной загрузке с помощью mysql приведут к выполнению таких команд, вызовите mysql с параметром --binary-mode или используйте другой клиент для перезагрузки, нежели mysql.
-
help [,arg]\h [,arg]\? [,arg]? [arg]Отобразить сообщение справки, перечисляющее доступные команды mysql.
Если вы предоставите аргумент команде
help, mysql использует его как строку поиска для доступа к справочной информации на стороне сервера из содержимого Справочного руководства MySQL. Дополнительную информацию см. в разделе 6.5.1.4, «Справка mysql на стороне сервера». -
charset,charset_name\Ccharset_nameИзменить набор символов по умолчанию и выполнить оператор
SET NAMES. Это позволяет набору символов оставаться синхронизированным на клиенте и сервере, если mysql запущен с включенным автоматическим подключением (чего не рекомендуется), так как указанный набор символов используется для повторных подключений. -
clear,\cОчистить текущий ввод. Используйте эту команду, если вы передумали выполнить вводимый оператор.
-
connect [,db_name[host_name]]\r [db_name[host_name]]Подключиться к серверу снова. Дополнительные аргументы имени базы данных и имени хоста можно использовать для указания базы данных по умолчанию или хоста, на котором работает сервер. Если аргументы опущены, используются текущие значения.
Если команда
connectуказывает аргумент имени хоста, этот хост имеет приоритет перед любым параметром--dns-srv-name, заданным при запуске mysql для указания записи DNS SRV. -
delimiter,str\dstrИзменить строку, которую mysql интерпретирует как разделитель между операторами SQL. По умолчанию это символ точки с запятой (
;).Строка-разделитель может быть указана как необработанный или обработанный аргумент в команде
delimiterв командной строке. Обработка может быть выполнена с помощью одинарной кавычки ('), двойной кавычки (") или обратной кавычки (`). Для вставки кавычки в строку с кавычками необходимо либо заключить строку в кавычки другого типа, либо экранировать кавычку обратной косой чертой (\). Обратную косую черту следует избегать вне строковых литералов, поскольку она является управляющим символом в MySQL. Для необработанного аргумента разделитель считывается до первой пробельной или конечной строки. Для обработанного аргумента разделитель считывается до соответствующей кавычки в строке.mysql интерпретирует строки разделителей как разделители операторов, где бы они ни появлялись, за исключением строк с кавычками. Будьте осторожны, задавая разделитель, который может встречаться в других словах. Например, если вы определите разделитель как
X, то использовать словоINDEXв операторах невозможно. mysql интерпретирует это какINDE, за которым следует разделительX.Когда разделитель, распознанный mysql, отличается от значения по умолчанию
;, экземпляры этого символа отправляются на сервер без интерпретации. Однако сам сервер по-прежнему интерпретирует;как разделитель операторов и обрабатывает операторы соответственно. Это поведение на стороне сервера используется для выполнения нескольких операторов (см. ), а также для разбора тела хранимых процедур, функций, триггеров и событий (см. раздел 27.1, «Определение хранимых программ»). -
edit,\eРедактировать текущий вводимый оператор. mysql проверяет значения переменных среды
EDITORиVISUAL, чтобы определить, какой редактор использовать. По умолчанию используется редактор vi, если ни одна из переменных не задана.Команда
editработает только в Unix. -
ego,\GОтправить текущий оператор на сервер для выполнения и отобразить результат в вертикальном формате.
-
exit,\qВыход из mysql.
-
go,\gОтправить текущий оператор на сервер для выполнения.
-
nopager,\nОтключить постраничную вывод. Смотрите описание для
pager.Команда
nopagerработает только в Unix. -
notee,\tОтключить копирование вывода в файл tee. Смотрите описание для
tee. -
nowarning,\wОтключить отображение предупреждений после каждого оператора.
-
pager [,command]\P [command]Включить постраничный вывод. Используя параметр
--pagerпри вызове mysql, можно просматривать или искать результаты запросов в интерактивном режиме с помощью программ Unix, таких как less, more или аналогичных программ. Если вы не укажете значение для параметра, mysql проверит значение переменной средыPAGERи установит просмотрщик в соответствии с этим значением. Функциональность просмотрщика работает только в интерактивном режиме.Постраничный вывод можно включить интерактивно с помощью команды
pagerи отключить с помощьюnopager. Команда принимает необязательный аргумент; если он указан, программа просмотрщика устанавливается в соответствии с ним. Без аргумента просмотрщик устанавливается в просмотрщик, заданный в командной строке, илиstdout, если просмотрщик не был указан.Постраничный вывод работает только в Unix, так как использует функцию
popen(), которая не существует в Windows. Для Windows можно использовать параметрteeдля сохранения вывода запроса, хотя это не так удобно, какpagerдля просмотра вывода в некоторых ситуациях. -
print,\pРаспечатать текущий вводимый оператор без его выполнения.
-
prompt [,str]\R [str]Перенастроить приглашение mysql на заданную строку. Специальные последовательности символов, которые можно использовать в приглашении, описаны позже в этом разделе.
Если вы укажете команду
promptбез аргумента, mysql сбросит приглашение до значения по умолчаниюmysql>. -
query_attributesnamevalue[namevalue...]Определить атрибуты запроса, которые применяются к следующему запросу, отправленному на сервер. Обсуждение цели и использования атрибутов запроса см. в разделе 11.6, «Атрибуты запроса».
Команда
query_attributesследует этим правилам:Формат и правила обработки строк для имен и значений атрибутов совпадают с правилами для команды
delimiter.Команда допускает до 32 пар имя/значение атрибута. Имена и значения могут иметь длину до 1024 символов. Если имя указано без значения, возникает ошибка.
Если перед выполнением запроса выдаются несколько команд
query_attributes, применяется только последняя команда. После отправки запроса mysql очищает набор атрибутов.Если несколько атрибутов определены с одинаковым именем, попытки извлечения значения атрибута по имени имеют неопределенный результат.
Атрибут, определенный с пустым именем, не может быть получен по имени.
Если во время выполнения запроса mysql происходит повторное подключение, mysql восстанавливает атрибуты после повторного подключения, чтобы запрос можно было выполнить снова с теми же атрибутами.
-
quit,\qВыход из mysql.
-
rehash,\#Перестроить хеш завершения, который позволяет выполнять завершение имен баз данных, таблиц и столбцов во время ввода операторов. (См. описание параметра
--auto-rehash.)
-
resetconnection,\xСбросьте соединение, чтобы очистить состояние сеанса. Это включает очистку любых текущих атрибутов запроса, определённых с помощью команды
query_attributes.Сброс соединения имеет последствия, аналогичные или автоматическому подключению, за исключением того, что соединение не закрывается и не переоткрывается, и повторная аутентификация не выполняется. См. , и .
В этом примере показано, как
resetconnectionочищает значение, хранящееся в состоянии сеанса:mysql>
SELECT LAST_INSERT_ID(3);+-------------------+ | LAST_INSERT_ID(3) | +-------------------+ | 3 | +-------------------+ mysql>SELECT LAST_INSERT_ID();+------------------+ | LAST_INSERT_ID() | +------------------+ | 3 | +------------------+ mysql>resetconnection;mysql>SELECT LAST_INSERT_ID();+------------------+ | LAST_INSERT_ID() | +------------------+ | 0 | +------------------+ -
source,file_name\.file_nameПрочитайте именованный файл и выполните содержащиеся в нём операторы. В Windows укажите разделители пути как
/или\\.Знаки кавычек рассматриваются как часть имени файла. Для наилучших результатов имя не должно содержать пробелов.
-
ssl_session_data_print [file_name]Извлекает, сериализует и, по желанию, сохраняет данные сеанса успешного подключения. Дополнительное имя файла и аргументы могут быть заданы для указания файла для сохранения сериализованных данных сеанса. Если они опущены, данные сеанса выводятся на
stdout.Если сеанс MySQL настроен на повторное использование, данные сеанса из файла десериализуются и подаются команде
connectдля повторного подключения. При успешном повторном использовании сеанса командаstatusсодержит строку, показывающуюSSL session reused: true, в то время как клиент остаётся подключенным к серверу. -
status,\sПредоставляет информацию о статусе подключения и используемом сервере. Если вы работаете с
--safe-updatesвключённым,statusтакже выводит значения переменных mysql, которые влияют на ваши запросы. -
system,command\!commandВыполните заданную команду, используя ваш интерпретатор команд по умолчанию.
В MySQL 9.2 эта команда отключена по умолчанию. Вы можете включить её, запустив клиент с
--system-command=ON. -
tee [,file_name]\T [file_name]Используя опцию
--teeпри вызове mysql, можно регистрировать операторы и их вывод. Все данные, отображаемые на экране, добавляются в указанный файл. Это может быть очень полезно для отладки. mysql сбрасывает результаты в файл после каждого оператора, незадолго до вывода следующего приглашения. Функциональность tee работает только в интерактивном режиме.Вы можете включить эту функцию интерактивно с помощью команды
tee. Без параметра используется предыдущий файл. Файлteeможно отключить с помощью командыnotee. Выполнениеteeснова включает ведение журнала. -
use,db_name\udb_nameИспользовать
db_nameв качестве базы данных по умолчанию. -
warnings,\WВключить отображение предупреждений после каждого оператора (если они есть).
Вот несколько советов по команде pager:
-
Вы можете использовать её для записи в файл, а результаты попадают только в файл:
mysql>
pager cat > /tmp/log.txtВы также можете передавать любые опции для программы, которую вы хотите использовать в качестве просмотрщика:
mysql>
pager less -n -i -S -
В предыдущем примере обратите внимание на опцию
-S. Она может оказаться очень полезной для просмотра широких результатов запросов. Иногда очень большой набор результатов сложно читать на экране. Опция-Sдля less может сделать набор результатов намного более читаемым, потому что вы можете прокручивать его по горизонтали с помощью клавиш со стрелками влево и вправо. Вы также можете интерактивно использовать-Sвнутри less для включения и отключения режима горизонтального просмотра. Для получения дополнительной информации прочитайте руководство по less:man less
-
Опции
-Fи-Xмогут быть использованы с less для вывода, если вывод поместится на одном экране, что удобно, когда прокрутка не требуется:mysql>
pager less -n -i -S -F -X -
Вы можете задавать очень сложные команды просмотрщика для обработки вывода запросов:
mysql>
pager cat | tee /dr1/tmp/res.txt \| tee /dr2/tmp/res2.txt | less -n -i -SВ этом примере команда отправит результаты запроса в два файла в двух разных каталогах на двух разных файловых системах, смонтированных на
/dr1и/dr2, но всё равно отобразит результаты на экране с помощью less.
Вы также можете комбинировать функции tee и pager. Имейте включённый файл tee и установленный pager в less, и вы сможете просматривать результаты с помощью программы less и в то же время всё будет добавляться в файл. Разница между Unix-командой tee, используемой с командой pager, и встроенной командой mysql tee заключается в том, что встроенная команда tee работает даже если у вас нет Unix-команды tee. Встроенная команда tee также регистрирует всё, что отображается на экране, в то время как Unix-команда tee с pager не регистрирует столько же. Кроме того, ведение журнала файлов tee можно включать и отключать интерактивно в mysql. Это полезно, когда вы хотите регистрировать некоторые запросы в файле, а не другие.
Команда prompt переконфигурирует приглашение по умолчанию mysql>. Строка для определения приглашения может содержать следующие специальные последовательности.
| Опция | Описание |
|---|---|
\C | Текущий идентификатор соединения |
\c | Счётчик, увеличивающийся для каждого выпущенного вами оператора |
\D | Полная текущая дата |
\d | База данных по умолчанию |
\h | Хост сервера |
\l | Текущий разделитель |
\m | Минуты текущего времени |
\n | Символ новой строки |
\O | Текущий месяц в формате из трёх букв (Янв, Фев, …) |
\o | Текущий месяц в числовом формате |
\P | am/pm |
\p | Текущий TCP/IP порт или файл сокета |
\R | Текущее время в 24-часовом военном времени (0–23) |
\r | Текущее время в стандартном 12-часовом формате (1–12) |
\S | Точка с запятой |
\s | Секунды текущего времени |
\T | Печать звёздочки (*), если текущий сеанс находится внутри блока транзакции |
\t | Символ табуляции |
\U | Полное имя вашей учётной записи |
\u | Ваше имя пользователя |
\v | Версия сервера |
\w | Текущий день недели в формате из трёх букв (Пн, Вт, …) |
\Y | Текущий год, четыре цифры |
\y | Текущий год, две цифры |
\_ | Пробел |
\ | Пробел (пробел следует за обратной косой чертой) |
\' | Одинарная кавычка |
\" | Двойная кавычка |
\\ | Литеральная \ обратная косая черта |
\ | |
Вы можете установить приглашение несколькими способами:
-
Используйте переменную среды. Вы можете установить переменную среды
MYSQL_PS1в строку запроса. Например:export MYSQL_PS1="(\u@\h) [\d]> "
-
Используйте командную опцию. Вы можете установить опцию
--promptв командной строке для mysql. Например:$>
mysql --prompt="(\u@\h) [\d]> "(user@host) [database]> -
Используйте файл параметров. Вы можете установить опцию
promptв группе[mysql]любого файла параметров MySQL, например,/etc/my.cnfили файла.my.cnfв вашем домашнем каталоге. Например:[mysql] prompt=(\\u@\\h) [\\d]>\\_
В этом примере обратите внимание, что обратные слэши дублируются. Если вы устанавливаете запрос с помощью опции
promptв файле параметров, рекомендуется дублировать обратные слэши при использовании специальных опций запроса. Существует некоторое совпадение в наборе допустимых опций запроса и наборе специальных последовательностей escape, которые распознаются в файлах параметров. (Правила для последовательностей escape в файлах параметров перечислены в разделе 6.2.2.2, «Использование файлов параметров».) Перекрытие может вызвать проблемы, если вы используете одинарные обратные слэши. Например,\sинтерпретируется как пробел, а не как текущее значение секунд. Следующий пример показывает, как определить запрос в файле параметров, чтобы включить текущее время в формате:hh:mm:ss>[mysql] prompt="\\r:\\m:\\s> "
-
Установите запрос интерактивно. Вы можете изменить запрос интерактивно, используя команду
prompt(или\R). Например:mysql>
prompt (\u@\h) [\d]>\_PROMPT set to '(\u@\h) [\d]>\_' (user@host) [database]> (user@host) [database]> prompt Returning to default PROMPT of mysql> mysql>
© 2025 Oracle
Licensed under the GPLv2 License.