4.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.
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. Дополнительную информацию см. в разделе 4.5.1.4 «Справочная информация на стороне сервера клиента mysql». -
charset,charset_name\Ccharset_nameИзменить набор символов по умолчанию и выполнить оператор
SET NAMES. Это позволяет набору символов оставаться синхронизированным на клиенте и сервере, если mysql запускается с включенной автоматической переподключением (что не рекомендуется), так как указанный набор символов используется для переподключений. -
clear,\cОчистить текущий ввод. Используйте эту команду, если вы передумали выполнять вводимый оператор.
-
connect [,db_name[host_name]]\r [db_name[host_name]]Переподключиться к серверу. Дополнительные аргументы — имя базы данных и имя хоста — могут быть заданы для указания базы данных по умолчанию или хоста, на котором работает сервер. Если они опущены, используются текущие значения.
-
delimiter,str\dstrИзменить строку, которую mysql интерпретирует как разделитель между операторами SQL. По умолчанию это символ точки с запятой (
;).Строку-разделитель можно указать как необработанный или обработанный аргумент в командной строке команды
delimiter. Обработка может быть выполнена с помощью одинарной кавычки ('), двойной кавычки (") или обратной кавычки (`). Для включения кавычки внутри строкового аргумента либо используйте другой символ кавычек, либо экранируйте кавычку с помощью обратного слэша (\). Слеш следует избегать за пределами строковых аргументов, поскольку он является символом экранирования для MySQL. В случае необработанного аргумента разделитель читается до первой пробела или конца строки. В случае обработанного аргумента разделитель читается до соответствующей кавычки в строке.mysql интерпретирует вхождения строки-разделителя как разделитель операторов, где бы он ни находился, за исключением строковых аргументов. Будьте осторожны при определении разделителя, который может встречаться внутри других слов. Например, если вы определите разделитель как
X, то словоINDEXв операторах использовать нельзя. mysql интерпретирует это какINDE, за которым следует разделительX.Когда разделитель, распознаваемый mysql, установлен на значение, отличное от значения по умолчанию
;, вхождения этого символа отправляются на сервер без интерпретации. Однако сам сервер по-прежнему интерпретирует;как разделитель операторов и обрабатывает операторы соответственно. Это поведение на стороне сервера имеет значение для многострочного выполнения (см. ), а также для разбора тела хранимых процедур и функций, триггеров и событий (см. раздел 23.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>. -
quit,\qВыход из mysql.
-
rehash,\#Перестроить хеш завершения, который позволяет завершать ввод имен баз данных, таблиц и столбцов при вводе операторов. (См. описание опции
--auto-rehash.) -
resetconnection,\xСбросить соединение для очистки состояния сеанса.
Сброс соединения имеет последствия, аналогичные или автоматическому переподключению, за исключением того, что соединение не закрывается и не переоткрывается, и аутентификация не выполняется. См. и .
Этот пример показывает, как
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 используйте разделители пути
/или\\.Символы кавычек рассматриваются как часть имени файла. Для достижения наилучших результатов имя не должно содержать пробелы.
-
status,\sПредоставить информацию о состоянии соединения и используемом сервере. Если вы запускаете с включенной опцией
--safe-updates,statusтакже выводит значения переменных mysql, которые влияют на ваши запросы. -
system,command\!commandВыполнить заданную команду с помощью интерпретатора команд по умолчанию.
Команда
systemработает только в Unix.
-
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, и встроенной командой tee в mysql заключается в том, что встроенная команда 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 | Символ табуляции |
\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в файле опций, рекомендуется удваивать обратные косые черты при использовании специальных опций приглашения. Есть некоторое перекрытие набора допустимых опций приглашения и набора специальных управляющих последовательностей, которые распознаются в файлах опций. (Правила для управляющих последовательностей в файлах опций приведены в Разделе 4.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.