СУБД MySQL поставляется приходит со следующими основными программами и скриптами.
Еще есть несколько утилит. Они не жизненно важны для MySQL, но обеспечивают полезные дополнительные функциональные возможности.
Клиентская программа MySQL.
Запуск:
ОПИСАНИЕ:
Программой mysql поддерживаются следующие опции. Вы можете использовать или "короткий" одиночный символ или более подробную версию.
-\?, --help | Справка. |
-d, |
Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. |
-d, |
Вывести отладочную информацию при выходе из программы. |
-e, --exec | Выполнить команду и выйти, неявная форма опции --batch. |
-f, --force | Продолжить, даже если мы сталкиваемся с SQL ошибкой. |
-h, --hostname=[hostname] | Задает имя сервера, с которым Вы желаете соединиться. |
-P, --port=[port] | Порт, для соединения с сервером MySQL. |
-p, --password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, --quick | Быстрый (небуферизованный вывод), может замедлить сервер, если вывод приостановлен. |
-s, --silent | Работать молча (подавить вывод). |
-u, --user=[user] | Имя пользователя для соединения с сервером MySQL. Необязательно, если имя пользователя такое же, как ваш логин. По умолчанию именно ваш логин используется в качестве имени пользователя, что облегчает настройку. |
-v, --verbose | Подробный вывод. -v опция может быть удвоена или утроена для более подробного вывода. В программах русских авторов обычно именуется "уровнем болтливости программы". |
-w, --wait | Если подключение терпит неудачу, то подождать и повторить попытку. |
-B, --batch | Выполнить в пакетном режиме. Никаких запросов и никаких ошибок в STDOUT. Устанавливается автоматически при чтении из/записи в канал (пайп). Результаты будут выведены в формате с разделением табуляцией. Одна строка результата соответствует одной строке вывода. |
-I, --help | Справка, эквивалент -\?. |
-V, --version | Вывести информацию о версии пакета. |
В интерактивном режиме mysql будет печатать результаты в таблице подобно примеру, приведенному ниже. Если не задан пароль или имя пользователя mysql попробует зайти в систему на сервере базы данных с использованием вашего логина и НУЛЕВОГО (ПУСТОГО) пароля. Если ваш mysql логин отличается от вашего логина в unix, или если вы имеете пароль, то это провалится.
ПРИМЕР:
$ mysql mysql
Welcome to the mysql monitor. Commands ends with ; or \g.
Type 'help' for help.
mysql> select * from host;
1 rows in set (0.25 sec)
+-----------+----+--------+--------+--------+--------+--------+------+
| host | db | select | insert | update | delete | create | drop |
+-----------+----+--------+--------+--------+--------+--------+------+
| localhost | % | Y | Y | Y | Y | Y | Y |
+-----------+----+--------+--------+--------+--------+--------+------+
mysql>
|
Переведу этот пример на русский:
$ mysql mysql
Добро пожаловать в монитор mysql. Команды кончаются на ; или \g.
Наберите 'help' для получения справки.
mysql> select * from host;
1 строка в наборе (0.25 секунды)
+-----------+----+--------+--------+--------+--------+--------+------+
| host | db | select | insert | update | delete | create | drop |
+-----------+----+--------+--------+--------+--------+--------+------+
| localhost | % | Y | Y | Y | Y | Y | Y |
+-----------+----+--------+--------+--------+--------+--------+------+
mysql>
|
В режиме командной строки Вы должны иметь возможность работать с историей ввода и редактировать предыдущие команды. Это сильно облегчит работу.
В пакетном режиме результаты выводятся в виде полей, разделенных символами табуляции.
ПРИМЕР:
Создайте файл /tmp/test, который содержит следующую строку:
select * from host
В командной строке введите:
$ mysql mysql </tmp/test
|
host db select insert update delete create drop
localhost % Y Y Y Y Y Y
|
Проверка прав доступа пользователя.
СИНТАКСИС:
ОПИСАНИЕ:
$ 'mysqladmin reload'
после внесения изменений в таблицы базы данных MySQL.Скрипт mysqlaccess поддерживает следующие параметры (Вы можете использовать "короткий" одиночный символ или более подробную версию):
-?, --help | Справка. |
-v, --version | Информация о версии |
-u, --user=... | Имя пользователя для доступа к базе данных. |
-p, --password=... | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-h, --host=... | Имя сервера, используется для проверки прав доступа. |
-d, --db=... | Имя базы данных, используется для проверки прав доступа. |
-U, --superuser=... | Логин администратора. |
-P, --spassword=... | Пароль администратора. |
-b, --brief | Вывести краткие сведения о таблице. |
--relnotes | Вывести заметки по реализации. |
--plan | Вывести идеи для будущих реализаций. |
--howto | Вывести примеры использования `mysqlaccess' |
--debug=N | Уровень отладки N (0..3) |
Вы должны указать по крайней мере имя пользователя и имя базы данных, которые Вы желаете проверить. Если имя сервера не задано, то подразумевается имя 'localhost'.
"Групповые символы" (*,?, %, _) могут применяться при указании сервера, пользователя и db (базы данных). Убедитесь, что они не будут перехвачены вашей командной оболочкой unix.
СИНТАКСИС:
ОПИСАНИЕ:
-\?, --help | Справка. |
-d, --debug=[options] | Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. |
-f, --force | Не спрашивать подтверждения при пропуске таблицы. |
-h, --host=[hostname] | Имя сервера, если не localhost. |
-i, --sleep=[seconds] | Выполнить команды несколько раз с паузой в [секунд] между ними. |
-p, --password[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, --user=[user] | Имя пользователя. Если не указано, используется текущий логин. |
-P, --port=[port] | Порт, для соединения с сервером MySQL. |
-V, --version | Вывести информацию о версии. |
create [имя базы данных] | Создать базу данных. |
drop [имя базы данных] | Удалить базу данных (вместе со всеми таблицами). |
processlist | Вывести сведения о работающих потоках MySQL. |
reload | Перечитать настройки и очистить все кэши. |
shutdown | Завершить работу СУБД MySQL. Все запущенные MySQL-сессии помечаются как 'killed'. Это означает, что все потоки, которые простаивают в настоящее время, будут закрыты немедленно, а управление потоками будет закрыто, когда они достигнут точек завершения, определенных сервером. Клиенты получат сообщение об ошибке 'mysql server has gone away'. |
status | Вывести короткое сообщение о статусе сервера. |
version | Вывести информацию о версии. |
Обратите внимание: mysqladmin понимает сокращения. Например, Вы
могли бы написать следующее:
$ mysqladmin v p
Это вывело бы версию mysqld и список всех активных в настоящее время потоков.
Вы можете использовать опцию -i=[секунд] для повтора команды каждые [секунд]. Это наиболее полезно с командой processlist.
Обратите внимание, что Вы можете использовать вышеупомянутые команды, только если Вы имеете соответствующие права доступа.
Серверная часть пакета MySQL (mysqld).
СИНТАКСИС:
ОПИСАНИЕ:
Может наблюдаться спад производительности при использовании опции
Опция
Каждая операция UPDATE, DELETE и INSERT имеет заголовок в 13 байтов дополнительно к команде.
Каждая открытая таблица требует девять байтов плюс длина имени файла таблицы. Это необходимо только для таблиц, которые еще не в кэше таблиц.
Кроме того будут иметься одиннадцать байтов дополнительно для любых команд, которые кэшируют/блокируют таблицы. Эти события обычно вызваны внутренними командами mysql. Наиболее часто, когда используется SELECT.
В большинстве случаев нужно выполнять mysqld из скрипта safe_mysqld .
Программа mysqld поддерживает следующие опции командной строки:
-\?, --help | Справка |
-#, --debug=[options] | Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. |
-b, --basedir=[path] | Полное имя каталога в который установлен пакет. |
-h, --datadir [homedir] | Полное имя каталога в котором хранятся базы данных. |
-l, |
Имя файла протокола запросов к базам данных и подключений. |
Имя файла протокола изменений isam. | |
-O, |
Установить переменную. См. ниже. |
-L, --language=[language] | Значение по умолчанию 'english/'. Может быть так же 'swedish/', 'germany/','french/' или 'czech/'. Текущий список можно посмотреть в подкаталог share/mysql каталога, в который установлен MySQL. |
-P, --port=[port] | Порт для соединения. |
-T, |
Вывести отладочную информацию. |
Не использовать новые (возможно, глючные) возможности этой версии. | |
Игнорировать таблицы предоставления доступа. Это дает любому ПОЛНЫЙ доступ ко всем таблицам. | |
Не использовать блокировку системы. Может дать лучшую эффективность, но не должен использоваться вместе с isamchk. ТО ЕСТЬ, сначала остановите сервер. | |
Эта опция заставит mysqld принимать адреса IP только тех серверов, которые явно указаны в базе данных привилегий mysql. DNS можно более или менее просто хакнуть, а эта опция позволяет избежать ряда проблем, если прикладная программа требует высокого уровня защиты. | |
Использовать подключения только через интерфейс localhost. Эта опция не будет работать с MIT потоками. Если подключения к базе данных будут только локальные, то использование этой опции защитит от создания удаленных подключений. | |
Пропустить возможно опасные оптимизации. | |
--socket=[socket] | Имя сокет-файла для MySQL. Недоступно при использовании версии MySQL,
скомпилированной с MIT потоками.
ПРИМЕР: |
-V, --version | Вывести информацию о версии. |
Если опция -h не определена, mysql будет считать, что основной каталог = "/my/data/sql/mysql".
Все базы данных размещены в каталоге [homedir]/[имя базы данных] .
Опция -l должна использоваться осторожно. Когда используется сервер, с большим объемом транзакций, этот файл может стать большим очень быстро. Если Вы не определяете имя logfile, при использовании опции -l mysqld будет писать протокол в файл [homedir]/[hostname].log.
Опция -O позволяет Вам определять значения для следующих параметров:
Имя | Значение по умолчанию |
---|---|
back_log | 5 |
keybuffer | 1048568 |
max_allowed_packet | 65536 |
net_buffer_length | 8192 |
max_connections | 90 |
table_cache | 64 |
recordbuffer | 131072 |
sortbuffer | 2097144 |
max_sort_length | 1024 |
Информация относительно того, что эти значения делают, и как поднять эффективность mysqld, находится здесь.
СИНТАКСИС:
ОПИСАНИЕ:
Программа mysqldump поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, --debug=[options] | Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. |
-?, --help | Справка. |
-c, |
Генерируйте полные инструкции insert (не исключая значений, которые соответствуют значениям столбца по умолчанию). |
-h, --host=[hostname] | Соединиться с сервером hostname. |
-d, |
Экспорт только схемы информации (исключая данные). |
-t, |
Экспорт только данных, исключая информацию для создания таблицы. Противоположность -d. |
-p, --password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-q, --quick | Не буферизовать результаты запроса, дамп выдать непосредственно к STDOUT. |
-u, --user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-v, --verbose | Вывести подробную информацию относительно различных стадий выполнения mysqldump. |
-P, --port=[port] | Порт для связи. |
-V, --version | Информация о версии. |
Вы можете направить вывод mysqldump в клиентскую программу MySQL, чтобы копировать базу данных. ПРИМЕЧАНИЕ: Вы должны убедиться, что база данных не изменяется в это время, иначе Вы получите противоречивую копию!
ПРИМЕР:
mysqladmin create foo
mysqldump mysql | mysql foo
СИНТАКСИС:
ОПИСАНИЕ:
Программа mysqlshow поддерживает следующие параметры (Вы можете использовать короткую или подробную версию):
-#, --debug=[options] | Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. Как мне надоела эта опция... |
-?, --help | Справка. |
-h, --host=[hostname] | Связаться с сервером hostname. |
-k, --key | Вывести ключ(и) для таблиц(ы). |
-p, --password=[password] | Пароль пользователя, для соединения с сервером MySQL. Обратите внимание, что не должно быть пробела между -p и паролем. |
-u, --user=[username] | Имя пользователя. Если не задано, используется текущий логин. |
-P, --port=[port] | Порт для связи. |
-V, --version | Информация о версии. |
Если последний параметр содержит '?' или '*', то они используются как подстановочные знаки.
ПРИМЕР:
mysqlshow test 'a*'
показать список всех таблиц в базе данных test, начиная с 'a'.
mysqlshow по существу идентичен программе mSQL msqlshow. СУБД MySQL обеспечивает, подобные функциональные возможности посредством команд языка SQL SHOW и DESCRIBE .
СИНТАКСИС:
isamchk [-?adeiqrsvwzIV] [-k #] [-O xxxx=size] [-Si] [-Sr #]
[-O keybuffer=#] [-O readbuffer=#] [-O writebuffer=#]
[-O sortbuffer=#] [-O sort_key_blocks=#] files
ОПИСАНИЕ:
Необходимо остановить СУБД MySQL перед запуском isamchk с единственным переключателем -r.
Вообще, используйте переключатель -rq для ремонта таблицы, потому что он выполняет "оперативный" ремонт. Для такого ремонта не нужно временного места в памяти, таким образом он проходит быстро, так как isamchk не копирует файл данных.
Перед началом работы, надо перейти в каталог с таблицей, которая нуждается в проверке и/или ремонте. В общем случае, это $DATADIR/DBNAME.
Опции программы isamchk:
-# | Вывести в протокол отладочную информацию. В общем виде 'd:t:o,filename`. Подробности в главе о библиотеке отладки. |
-? | Справка. |
-a | Анализ. Используется для для оптимизации размещения таблиц. |
-d | Информация о таблице. |
-e | Расширенная проверка. При запуске с этой опцией надо остановить демон mysqld. |
-f | Принудительно создать временный файл. Эта опция вызовет |
-k# | Используемые ключи. |
-i | Дополнительная информация. |
-q | Быстрая проверка. |
-r[o] | Восстановление, Эта опция также уплотнит внутренние индексы B-Tree, используемые MySQL. Используйте эту опцию, чтобы уменьшить место, занимаемое таблицей, за счет удаления неиспользуемых индексов. |
-s | Работать молча. |
-u | Распаковать упакованный файл. |
-v | Подробный вывод. Используется вместе с другими параметрами, чтобы получить большее количество информации. Можно задать большее количество символов v для повышения объема выдаваемой информации (например, vv). |
-w | Ждать, если таблица заблокирована. |
-I | Справка. |
-S[ir]# | Сортировать индекс/записи по ключу #. Эта опция оптимизирует размещение данных в таблице. |
-V | Информация о версии. |
-O var=# | Опция оптимизации var=#[k][m] |
Имеется несколько примеров. См. Подробно о таблицах.
ПРИМЕРЫ:
isamchk -r [table_name] | Убрать все дырки, которые сформировались из-за использования BLOBS или VARCHARS. Также установить какие еще есть проблемы. |
isamchk -ei [table_name] | Проверить таблицу и отобразить статистику. |
isamchk [table_name] | Найти большинство ошибок. |
isamchk -rq [table_name] | Обновить только индексный файл. Быстро, но не исправляет ошибки в файле данных. |
Описание таблицы. | |
isamchk -rq -Si [table_name] | Полная оптимизация таблицы [table_name]. Надолго... |
СИНТАКСИС:
isamlog [-?iruvIV] [-c #] [-f #] [-p #] [-F filepath/] [-o #]
[-R file recordpos] [-w write_file] [log-filename]
ОПИСАНИЕ:
mysqld
.
Файл file_name будет хранить протокол всех изменений для всех таблиц. Программа isamlog может быть использована для получения информации об этом файле и обновить все таблицы и базы данных.
Чтобы восстановить базу данных, нужна копия, которая содержит вашу базу данных до того, как mysqld сгенерировал ISAM журнал, или полный набор ISAM журналов с начала работы вашей базы данных.
-? or -I | Справка. |
-V | Информация о версии. |
-c # | Выполнить только # команд. |
-f # | Максимальное число открытых файлов. Если откроется больше чем # файлов, то лишние будут автоматически закрыты и вновь открыты по мере необходимости. |
-F [path] | Файл протокола ISAM содержит полный путь к таблицам. Вы можете
использовать эту опцию, чтобы отменить сохраненный путь.
ПРИМЕР: -F '/var/mirror/' заставит isamlog работать с файлами в /var/mirror, а не с теми, которые указаны в сохраненном пути. |
-i | Вывести более детальную информацию. |
-o # | Начать со смещения #. |
-p # | Удалить # компонент из пути. |
-r | Игнорировать все ошибки, с которыми сталкиваемся в течение модификаций. |
-R | Указать позицию в файле ISAM, о которой надо выдать сведения.
ПРИМЕР:
Выведет все изменения в таблице /usr/local/data/mysql/user, которые
найдены в позиции 1234. Это полезно для ситуаций, в которых Вы имеете
разрушенную запись в известной позиции. Вы, возможно, получили эту
информацию посредством Если Вы укажете позицию -1, будут обработаны все записи. |
-u | Пытаться модифицировать все таблицы. Остановиться, если встречена ошибка. |
-v | Подробный вывод. Можно задать большее количество символов v для повышения объема выдаваемой информации (например, vv). |
-w [filename] | Записать все записи вставленные или измененные опцией -R в [filename]. Эта опция может использоваться, чтобы получить двоичный файл всех вставок и модификаций конкретной таблицы для использования в отладке. |
СИНТАКСИС:
ОПИСАНИЕ:
СИНТАКСИС:
comp_err [-?] [-I] [-V] fromfile[s] tofile
ОПИСАНИЕ:
Эта программа используется для компиляции текстовых файлов которые содержат соответствие между кодами ошибок mysql и текстовыми сообщениями об этих ошибках в формат, который понимает mysql. Это нужно для изменения уже существующего файла сообщений или генерации такого файла для другого языка.
ПРИМЕР:
comp_err share/english/errmsg.txt share/english/errmsg.sys
СИНТАКСИС:
Программа msql2mysql - фактически довольно простой скрипт, который использует команду replace, которая поставляется с СУБД MySQL, чтобы заменить mSQL обращения к функции на их MySQL эквиваленты. Меняются только имена, дополнительные параметры не добавляются.
СИНТАКСИС:
ОПИСАНИЕ:
СИНТАКСИС:
$ perror [-?vIV] [errorcodes]
ОПИСАНИЕ:
Программа perror поддерживает опции:
-? or -I | Справка. |
-v | Подробная информация. |
-V | Информация о версии. |
СИНТАКСИС:
ОПИСАНИЕ:
Программа program используется скриптом msql2mysql. Replace может быть использована для замены строки на месте в файле или получать строку через канал (пайп), производить замену и выводить результат в STDOUT.
Допустимы следующие опции:
-? | Справка. |
-s | Работать молча (никаких статусных сообщений). |
-v | Подробная информация о ходе работы (выводить дополнительные сообщения). |
ПРИМЕРЫ:
replace Apple Orange somefile
Заменит все вхождения Apple на Orange в файле somefile.
cat INFILE | replace Apple Orange Blimp Train > OUTFILE
Все вхождения Apple в файле INFILE будут заменены на Orange и результат выведен в файл OUTFILE. В то же время, все вхождения Blimp в файле INFILE будут заменены на Train и тоже выведены в файл OUTFILE. Таким образом, можно заменять более чем одно выражение за один проход.
Вы можете использовать специальные символы во входных строках:
\^ | Соответствует началу строки. |
\$ | Соответствует концу строки. |
\b | Соответствует пробелу. Может появляться или отдельно, или в начале, или в конце лексемы. Если \b используется в конце лексемы, следующие замены начнутся после пробела. \b соответствует только пробелу. |
Replace простая и очень полезная утилита с большими потенциальными возможностями использования в MySQL.
Найти команду.
СИНТАКСИС:
ОПИСАНИЕ:
СИНТАКСИС:
ОПИСАНИЕ:
zap
запросит подтверждение для каждого
подходящего процесса.ПРИМЕР:
prompt> zap -t "my"
UID PID PPID C STIME TTY TIME CMD
root 1217 1 1 15:21:30 pts/4 0:00 /bin/sh /usr/local/pkg/mysql-3.20.15/bin/safe_mysqld
root 1224 1217 3 15:21:32 pts/4 0:01 /usr/local/pkg/mysql-3.20.15/libexec/mysqld -b /usr/local/pkg/mysql-3.20.15 -h
|
Программа zap поддерживает опции:
-I or -? | Справка. |
-f | Послать сигнал без запроса подтверждения. |
-t | Вывести список процессов, соответствующих образцу, но не сигнал им не посылать. |
В качестве сигнала допускается любой сигнал системы unix. По умолчанию сигнал = 9 (завершить процесс).
В заключение хочется попросить Вас, если Вам понравилась эта страничка или пригодилась изложенная здесь информация, послать благодарность автору. Это поможет мне вести статистику того, скольким людям пригодилось хоть что-то из моих трудов.