MySQL. Библиотека профессионала - Аткинсон Л
..pdf272 Глава Утилиты командной строки
U
При наличии этойопции будет выдана статистика операций обновления.
V
Эта опция заставляет утилиту выдавать развернутую информацию. Если указана опция отчет будет еще более подробным.
V
При наличии этойопции возвращается информация о версии утилиты.
W
При наличии этой опции будет выдана статистика операций записи в файлы.
Эта утилита создает сжатые таблицы, доступные только для чтения. Синтаксис ее вызова таков:
myisampack
I
I конфигурация]
I
I таблица]
I
| длина]
|
| Т каталог]
|
| V]
I
После сжатия таблицы не забудьте перестроить индексы с помощью утилиты myisamchk. позволяет распаковать сжатую таблицу.
При наличии этой опции будут созданы резервные копии таблиц, имеющие рас ширение
конфигурация)
Эта опция заставляет утилиту записывать отладочную информацию в указанный журнальный файл. Поддержка данной опции должна быть включена в утилиту на эта пе компиляции. По умолчанию данные записываются в файл trace. Подробнее о формате журнальных файлов рассказывается в главе "Физическое хранение данных".
274 Глава Утилиты командной строки
Утилита mysql является, очевидно, самым важным инструментом пользователя
MySQL. Она позволяет посылать базам данных запросы в интерактивном и пакетном режимах. Формат ее вызова таков:
mysql
| В]
I С]
| имя]
|
\ # конфигурация]
| G]
I команда]
|
|
| узел]
| H]
|
| A]
|
I
I
I W]
| порт]
|
|
\ максимум]
\ О
I s]
Полный списокутилит 275
можно пользоваться клавишами управления курсором для перемещения по набран ному тексту (стрелки влево/вправо) и для вызова команд из перечня ранее введенных (стрелки вверх/вниз). Имеетсятакже множество специальных команд, активизируе мых при нажатии управляющих клавиш, но их рассмотрение выходит за рамки дан ной книги (соответствующую информацию можно найти по адресу http://cnswww.cns.
Версия |
утилиты |
для платформы |
Win32 не поддерживает библиотеку |
|
так как она не является частью Windows. Но есть другая утилита, которая |
||
называется |
|
и работает с библиотекой |
readline, входящей в пакет |
Эта |
будет рассмотрена ниже. |
|
В пакетном режиме утилита mysql принимает инструкции по каналу. Например, команда, показанная в листинге 14.4, зарегистрирует пользователя admin на сервере MySQL и выполнит инструкции, содержащиеся в файле как если бы эти инструкции были введены в командной строке. Прежде чем сценарий начнет выпол няться, программа попросит пользователя ввести пароль.
mysql
Переменные
Помимо упомянутых в начале главы переменных среды утилита mysql проверяет значения двух других переменных: и MYSQL_HOST.
MYSQL_HISTFILE
По умолчанию перечень введенных команд хранится в файле на ходящемся в начальном каталоге пользователя. Переменная среды MYSQL_HISTFILE позволяет задать другое местоположение файла.
MYSQL_HOST
В этой переменной хранится адрес стандартного узла. Если она не задана, утилита будетподключаться клокальномуузлу.
Опции
( B)
Эта опция переводит утилиту mysql в пакетный режим. Поля результатов запроса будут разделяться символами табуляции, а не так, как в интерактивном режиме. Дан ные, представленные в таком формате, удобнее передавать по каналу другой про грамме. Клавиши управления курсором в пакетном режиме не работают.
Если SQL инструкции передаются утилите mysql посредством оператора канала или оператора переадресации то утилита автоматически переходит в пакет
276 Глава Утилиты командной строки
режим и опция не нужна. Если же опция указана, но инструкции не вве дены, утилита перейдет в интерактивный режим, правда, с некоторыми стями. В частности, приглашение интерпретатора команд не отобразится, хотя ути лита будет ожидать ввод команд.
Эта опция задает каталог, где хранятся файлы наборов символов. Процесс созда ния таких файлов описан в главе "Расширение возможностей MySQL". По умолча нию программа MySQL работает с набором Latin, известным как ISO8859 1. Эту уста новку можно изменить на этапе компиляции программы или же с помощью опции
( C)
Эта заставляет утилиту серверу данные в сжатом что бывает удобно, когда соединение с сервером является очень медленным.
( D имя)
Эта опция задает базу данных, с которой будет вестись работа в текущем сеансе. То же самое делает инструкция USE. Имя базы данных можно также указать в качестве последнего аргумента утилиты
конфигурация)
Эта опция заставляет утилиту записывать отладочную информацию в указанный журнальный файл. Поддержка данной опции должна быть включена в утилиту на эта пе компиляции. По умолчанию данные записываются в файл trace. Подробнее о формате журнальных файлов рассказывается в главе 24, "Физическое хранение данных".
( T)
Эта опция заставляет утилиту выдавать отладочную информацию при завершении работы. В листинге 14.5 показан отчет о коротком сеансе.
User time |
System time 0.00 |
|
|
|
|
||
Maximum resident |
set size |
0, |
Integral |
resident |
set |
size 0 |
|
physical |
72, |
Physical |
|
187, Swaps |
0 |
||
Blocks in 0 out |
0, Messages in 0 out |
0, Signals |
0 |
|
|
||
Voluntary context switches |
0, |
Involuntary context |
switches |
0 |
Полный список утилит 277
Эта опция меняет стандартный набор символов, установленный на этапе компи ляции программы MySQL. Обычно таковым является набор Latin Указы ваемый файл должен находиться в каталоге, который был задан с помощью опции Этот файл представляет собой не просто коллекцию сим волов. В нем описаны правила сортировки алфавита и трансляции каждого символа в верхний и нижний регистры.
Данная опция заставляет утилиту прочитать дополнительный конфигурационный файл. Это происходит после анализа файла глобальных установок.
Эта опция позволяет переопределить стандартный конфигурационный файл.
( G)
Эта опция разрешает использовать длинные версии команд интерпретатора (так называемые именованные команды). Если именованные команды запрещены, нужно либо пользоваться их короткими аналогами, либо вводить их в отдельной строке, оканчивающейся точкой с запятой. Если же такие команды разрешены, необходимо внимательно следить за тем, чтобы случайно не активизировать одну из них. Это мо жет произойти, если часть SQL инструкции начинается с именованной команды.
Рассмотрим многострочную инструкцию, показанную в листинге 14.6. Здесь имя столбца source совпадает с названием стандартной команды. Если именованные ко манды разрешены, утилита ошибочно воспримет вторую строку как запрос на выполнение файла, а не как часть списка возвращаемых столбцов.
SELECT id, source, body FROM
команда)
Эта опция заставляет утилиту выполнить указанную инструкцию, которая должна быть заключена в одинарные кавычки (листинг 14.7).
mysql * FROM
278 Глава Утилиты командной строки
Показанная инструкция отобразит содержимое таблицы user в пакетном режиме.
Эта опция заставляет утилиту продолжать обработку входных данных даже в слу чае обнаружения ошибки. Имеет смысл применять ее в пакетном режиме при обра ботке длинных файлов.
При наличии этой опции выдается лишь описание синтаксиса командной строки, а все остальные опции игнорируются.
узел)
Эта опция задает узел, к которому будет пытаться подключиться утилита. По умол чанию связь устанавливается с локальным узлом. В качестве аргумента может присут ствовать доменное имя илиIP адрес.
( H)
Эта опция заставляет утилиту отображать результаты запроса в формате HTML. Применять ее имеет смысл лишь в пакетном режиме.
Эта опция заставляет утилиту игнорировать пробелы, следующие за именем функ ции. Обычно за именем функции должна идти открывающая скобка.
( A)
Если в имеющейся версии применяется библиотека то можно пользоваться функцией автоматического дополнения имен таблиц и столбцов. При нажатии клавиши табуляции интерпретатор предложит свой вариант дополнения имени. Опция запрещает утилите загружать список всех имен, благодаря чему утилита загружается немного быстрее. Режим автодополнения можно включить позднее с помощью команды rehash (\r).
Эта опция запрещает утилите анализировать конфигурационный файл.
Эта опция запрещает именованные команды — длинные версии команд, начинаю щихся с обратной косой черты. Такая установка принята по умолчанию. Противопо ложное действие выполняет опция
Полный список утилит 279
Эта опция применима только в отношении UNIX версий утилиты Она за прещает передавать выходные данные утилите постраничной разбивки.
Эта опция запрещает запись выходных данных в файл. Такая установка принята по умолчанию.
Эта опция заставляет утилиту обновлять только стандартную базу данных. Подоб ный режим полезен при восстановлении базы данных на основании журналов обнов лений, о чем рассказывается в главе 25, "Устранение последствий катастроф".
Эта опция заставляет утилиту mysql посылать выходные данные указанной коман де (обычно программе постраничной разбивки, например more).
Эта опция задает пароль для подключения к серверу. При ее отсутствии пароль не посылается. Если же пароль не указан, программа попросит его ввести. Учтите, что пароль, вводимый в командной строке, могут увидеть другие пользователи, просмат ривающие список процессов. Обратите также внимание то, что между названием короткой версии опции и паролем не нужен пробел.
( W)
Эта опция заставляет утилиту взаимодействовать с именованными каналами, но они доступны лишь в том случае, когда клиент работает в Windows NT. В остальных системах взаимодействие с сервером осуществляется посредством протокола TCP.
( P порт)
Эта опция переопределяет стандартный номер порта, с которым работает утилита (поумолчанию—3306).
При наличии этой опции утилита отобразит список своих установок и завершит работу.
280 Глава Утилиты командной строки
Эта опция заставляет утилиту не результаты запроса, а отображать их строка за строкой. Она также отключает перечень ранее введенных команд. Учтите, что работа сервера замедлится, если вывод д анных будет приостановлен программой постраничной разбивки.
Эта опция применяется в пакетном режиме. Она отменяет стандартную функцию преобразования непечатаемых символов в управляющие последовательности. На пример, в интерактивном если ячейка содержит символ новой строки, он бу дет воспринят буквально, и текст начнется с новой строки. В пакетном режиме этого не произойдет, но отобразится код \п. Опция влияет на символы табуляции (\t), новой строки обратной косой черты а также на первые 10 ASCII символов (\0 до
( U максимум)
Эта опция позволяет защитить пользователей новичков от случайного выполнения инструкции DELETE или UPDATE, затрагивающей всю таблицу. Запросы, в которых в предложении WHERE не указан первичный ключ, отклоняются. Если задан аргумент, бу дет изменено значение переменных SQL_SELECT_LIMIT и
У данной опции есть синоним:
set variableпеременная=значение ( О переменная=значение)
Эта опция позволяет установить значения некоторых переменных, в частности
( N)
При наличии этой опции названия столбцов не включаются в результаты запроса.
( L)
Эта опция подавляет вывод номеров строк в сообщениях об ошибках. Изначально номера строк появляются только в пакетном режиме. Приведем пример сообщения об ошибке:
ERROR 1054 at line 2: Unknown column in
В случае опции строка будет выглядеть следующим образом:
ERROR Unknown column in