Mysql, Утилита командной строки
Утилита командной строки mysql является простой SQL-оболочкой (с возможностями библиотеки readline проекта GNU). Она поддерживает интерактивный и неинтерактивный режимы. В интерактивном режиме результаты запроса представляются в ASCII-формате. При использовании в неинтерактивном режиме (например, в качестве фильтра) результат представляется в текстовом формате с символом табуляции в качестве разделителя (выходной формат можно изменить при помощи параметров командной строки). Сценарии можно запускать, как показано ниже:
shell> mysql database < script.sql > output.tab
Если возникают проблемы из-за недостатка памяти на данном клиенте, применяйте параметр --quick! Это заставит mysql использовать функцию mysql_use_result() вместо функции mysql_store_result() для получения результирующей выборки данных.
Использовать mysql очень легко. Запустите mysql database или mysql --user=user_name --password=your_password database. Наберите SQL-команду прямо в командной строке, завершив ее одним из символов: `;', `\g' или `\G', и нажмите клавишу ``Ввод''.
Утилита командной строки mysql поддерживает следующие параметры:
-?, --help
Вывод справочной информации об использовании программы и выход из нее.
-A, --no-auto-rehash
Отключает автоматическое рехеширование. rehash следует использовать для получения хеша таблиц и полей. Это обеспечивает более быстрый старт mysql.
--prompt=...
Устанавливает приглашение на ввод команд в заданном формате.
-b, --no-beep
Выключает звуковой сигнал об ошибке.
-B, --batch
Выводит результаты в пакетном режиме с символом табуляции в качестве разделителя, каждая строка с новой строки. Файл истории не используется.
--character-sets-dir=...
Директория, где находятся наборы символов.
-C, --compress
Использовать сжатие данных в протоколе сервер/клиент.
-#, --debug[=...]
Журнал отладки. Значение по умолчанию - 'd:t:o,/tmp/mysql.trace'.
-D, --database=...
Имя используемой базы данных. Большей частью применяется в конфигурационном файле `my.cnf'.
--default-character-set=...
Установить набор символов по умолчанию.
-e, --execute=...
Выполнить команду и завершить программу (вывод результата как и для --batch).
-E, --vertical
Вывести результаты запроса (строки) по вертикали. Можно произвести вывод подобным образом и без данного параметра, завершая команды символами \G.
-f, --force
Продолжать обработку даже при обнаружении ошибки SQL.
-g, --no-named-commands
Выключает именованные команды. Следует использовать только команды вида \* либо применять именованные команды только в начале строки, заканчивающейся символом `;'. Начиная с версии 10.9 клиент запускается с этой опцией, включенной по умолчанию! С опцией -g, однако, длинные команды все еще работают с первой строки.
-G, --enable-named-commands
Разрешает именованные команды. Допускаются длинные команды, а также укороченные команды вида \*.
-i, --ignore-space
Игнорировать пробел после имен функций.
-h, --host=...
Подсоединиться к базе данных на указанном хосте.
-H, --html
Вывести выходные данные в виде HTML.
-X, --xml
Вывести выходные данные в виде XML.
-L, --skip-line-numbers
Не указывать номера строк для ошибок. Полезно для сравнения результирующих файлов, включающих сообщения об ошибках.
--no-pager
Блокирует пейджер (программа постраничного вывода) и выводит результат в стандартный вывод stdout (в Unix). Смотрите также команду \h
(интерактивная помощь).
--no-tee
Блокирует выходной файл. Смотрите также команду \h (интерактивная помощь).
-n, --unbuffered
Очищать буфер после каждого запроса.
-N, --skip-column-names
Не указывать имена столбцов в результатах.
-O, --set-variable var=option
Установить значение переменной. Список используемых переменных выводится через --help. Обратите внимание, что --set-variable не используется в MySQL 4.0. Просто используйте --var=option.
-o, --one-database
Обновить только базу данных, установленную по умолчанию. Позволяет пропускать обновления другой базы данных в журнале обновления.
--pager[=...]
Устанавливает тип данных вывода. По умолчанию это переменная окружения PAGER. Ее возможные значения - less, more, cat [> имя файла], и т.д. См. также команду \h (интерактивная помощь). Этот параметр не работает в пакетном (batch) режиме. Пейджер работает только под Unix.
-p[password], --password[=...]
Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -p не оставляйте пробел между параметром и значением пароля.
-P порт, --port=порт
Номер порта TCP/IP, используемый для подсоединения.
--protocol=(TCP | SOCKET | PIPE | MEMORY)
Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
-q, --quick
Не кэшировать результат. Выводить его строка за строкой так, как он приходит от сервера. Это может замедлить скорость работы сервера, если вывод результата будет приостановлен. Файл истории не используется.
-r, --raw
Показывать значения столбцов без какого-либо преобразования. Используется с --batch.
-s, --silent
Режим молчания. Выводить только сообщения об ошибках.
-S --socket=...
Файл сокета, используемый для подсоединения.
-t --table
Выводить результат в табличном формате. Установлено по умолчанию для непакетного режима.
-T, --debug-info
Выводить некоторые отладочные данные при выходе из программы.
--tee=...
Присоединить что-либо к выходному файлу. Смотрите также команду \h (интерактивная помощь). Этот параметр не работает в пакетном режиме.
-u, --user=#
Имя пользователя MySQL, если этот пользователь не является активным в данное время.
-U, --safe-updates[=#], --i-am-a-dummy[=#]
Разрешает выполнять только операции UPDATE и DELETE, используя ключи. Более полная информация об этом параметре приведена ниже. Можно сбросить данный параметр, установив в конфигурационном файле `my.cnf' значение аргумента --safe-updates=0.
-v, --verbose
Более расширенный режим вывода результатов (-v -v -v дает формат вывода таблицы).
-V, --version
Вывод информации о версии и выход из программы.
-w, --wait
Если соединение с сервером упало, подождать и попытаться восстановить его, вместо того, чтобы прервать работу.
Через параметры командной строки -O или --set-variable (в MySQL 4.0 используйте просто --var=option) можно также установить следующие переменные:
Имя переменной | По умолчанию | Описание |
connect_timeout | 0 | Число секунд до истечения времени ожидания соединения |
max_allowed_packet | 16777216 | Максимальная величина пакета, посылаемого/принимаемого с сервера |
net_buffer_length | 16384 | Размер буфера для TCP/IP и сокетного соединения |
select_limit | 1000 | Автоматическое ограничение количества команд SELECT при использовании --i-am-a-dummy |
max_join_size | 1000000 | Автоматическое ограничение количества связанных строк при использовании --i-am-a-dummy. |
Опция | Описание |
\v | версия mysqld |
\d | имя используемой базы данных |
\h | имя хоста, к которому производится подсоединение |
\p | номер порта, через который производится подсоединение |
\u | имя пользователя |
\U | полный адрес username@host |
\\ | обратный слэш `\' |
\n | символ новой строки |
\t | табуляция |
\ | пробел |
\_ | пробел с подчеркиванием |
\R | время по военному часовому поясу (0-23) |
\r | время по стандартному часовому поясу (1-12) |
\m | минуты |
\y | два разряда года |
\Y | четыре разряда года |
\D | полный формат даты |
\s | секунды |
\w | день недели в трехбуквенном формате (Mon, Tue, ...) |
\P | Время до полудня/после полудня (am/pm) |
\o | месяц в числовом формате |
\O | месяц в трехбуквенном формате (Jan, Feb, ...) |
\c | Счетчик, подсчитывающий количество вводимых команд |
Символ `\' за которым следует любая другая буква, просто дополняет эту букву.
Установить параметры приглашения можно следующими способами:
В переменных окружения
Можно установить переменную окружения MYSQL_PS1 для строки приглашения. Например:
shell> export MYSQL_PS1="(\u@\h) [\d]> "
`my.cnf'
`.my.cnf'
Можно установить опцию prompt в любом конфигурационном файле MySQL в группе mysql. Например:
[mysql] prompt=(\u@\h) [\d]>\_
В командной строке
Можно установить опцию --prompt из командной строки утилиты mysql. Например:
shell> mysql --prompt="(\u@\h) [\d]> " (user@host) [database]>
В интерактивном режиме
Можно также использовать команду prompt (или \R) для изменения настроек приглашения в интерактивном режиме. Например:
mysql> prompt (\u@\h) [\d]>\_ PROMPT set to '(\u@\h) [\d]>\_'
(user@host) [database]> (user@host) [database]> prompt Возвращение к исходным (по умолчанию) настройкам PROMPT в утилите mysql> mysql>