Все программы MySQL имеют множество различных опций. При этом каждая программа MySQL поддерживает опцию -help, которую можно использовать для получения полного описания различных опций программы. Например, попробуйте выполнить mysql --help.
Заданные по умолчанию опции для всех стандартных программ можно переопределять при помощи файла опций.
В следующем списке приводятся краткие описания серверных программ MySQL.
myisamchk Утилита, применяемая для описания, проверки, оптимизации и восстановления таблиц MySQL. Поскольку утилита myisamchk имеет много функций, она описывается отдельно.
make_binary_distribution Создает бинарную поставку откомпилированного кода MySQL. Эту версию при помощи FTP можно передать на сайт support.mysql.com в директорию /pub/mysql/, чтобы ею могли воспользоваться и другие пользователи MySQL.
mysqlbug Сценарий, составляющий отчет о возникшей в MySQL неполадке. Этот сценарий должен всегда использоваться для составления отчета для почтового списка рассылки MySQL.
mysqldСам сервер MySQL, демон. Он должен работать постоянно.
mysql_install_db Создает таблицы привилегий MySQL с заданными по умолчанию привилегиями. Это обычно делается только один раз, при первой инсталляции MySQL в системе.
safe_mysqld , оболочка mysqld
В MySQL 4.0 safe_mysqld был переименован в mysqld_safe.
safe_mysqld — это сценарий, с помощью которого рекомендуется запускать демон mysqld на Unix. safe_mysqld служит для реализации неких дополнительных функций безопасности для mysqld, таких, как возможность перезапуска сервера при обнаружении ошибки и записи в журнал информации о процессе работы mysqld.
Если не указаны опции -mysqld=# или -mysqld-version=#, safe_mysqld будет использовать исполняемый файл mysqld-max, если последний существует. Если mysqld-max не существует, safe_mysqld запустит mysqld. Это позволяет легко выяснить, что даст использование mysqld-max вместо mysqld: просто скопируйте mysqld-max поверх mysqld, и он будет работать.
Как правило, редактировать сценарий safe_mysqld не следует, однако можно указать опции для safe_mysqld, поместив их в раздел [safe_mysqld] файла my. будет считывать все опции из разделов файлов опций [mysqld], [server] и [safe_mysqld].
Обратите внимание: все опции, которые вводятся в командной строке для safe_mysqld, передаются mysqld. Если требуется применить в safe_mysqld какие-либо опции, которые mysqld не поддерживает, эти опции нужно определить в файле опций.
Большинство опций safe_mysqld - те же, что и у mysqld.
Safe_mysqld поддерживает следующие опции:
-ledir=path |
Путь к mysqld |
-log-error=path |
Записывать журнал ошибок в указанный файл |
-datadir=path, -defaults-extra-file=path, -defaults-file=path, -log=path, -pid-file=path |
Служебные пути для mysqld |
-no-defaults |
|
-open-files-limit=# |
Максимальное количество файлов, которые могут быть открыты mysqld. Значение передается ulimit -n. Обратите внимание: чтобы эта опция работала корректно, необходимо запустить safe_mysqld от пользователя root! |
-port=# |
Номер порта для сетевой связи |
-socket=path |
Сокет для связи |
-timezone=# |
Устанавливает переменную часового пояса ( TZ ) в значение, передаваемое в этом параметре |
-core-file-size=# |
Размер файла, который mysqld должен быть способен создать. Используйте ulimit -c |
-mysqld=mysqld-version |
Имя версии mysqld в каталоге ledir |
-user=# |
Имя пользователя |
Сценарий safe_mysqld написан таким образом, чтобы можно было запустить сервер, инсталлированный как из исходного кода, так и из бинарной поставки MySQL, даже если компоненты сервера, в зависимости от используемой инсталляции, будут размещены несколько по-другому. Для safe_mysqld требуется выполнение одного из следующих условий.
safe_mysqld. safe_mysqld ищет в своей рабочей директории bin и data (для бинарных дистрибутивов) или libexec и var (для дистрибутивов с исходным кодом). Это условие должно выполняться, если safe_mysqld запускается из директории, в которую инсталлирован MySQL (например /usr/local/mysql для бинарного дистрибутива).safe_mysqld пытается найти их по абсолютным путям. Типичные местоположения — /usr/local/libexec и /usr/local/var. Действительные местоположения определяются при создании дистрибутива, из которого запускается safe_mysqld. Они должны быть корректными, если MySQL был инсталлирован в стандартное местоположение.Поскольку safe_mysqld будет пытаться найти сервер и базы данных относительно собственной рабочей директории, можно инсталлировать двоичный дистрибутив MySQL куда угодно, при условии, что safe_mysqld будет запускаться из директории, в которой установлен MySQL:
shell> cd mysql_installation_directory shell> bin/safe_mysqld
Если safe_mysqld не может запустить сервер, даже в том случае, когда он вызывается из инсталляционной директории MySQL, сценарий safe_mysqld можно модифицировать так, чтобы он использовал верный путь к mysqld и опции путей, которые являются правильными для вашей системы. Обратите внимание: если в будущем вы будете делать апгрейд MySQL, новая версия safe_mysqld будет записана поверх старой, поэтому нужно сделать копию отредактированной версии, которую вы сможете затем установить повторно.
Программа mysqld_multi предназначена для управления несколькими процессами mysqld, работающих на различных сокетах Unix и портах TCP/IP.
Программа будет искать группу(группы) [mysqld#] в my. (или заданных при помощи -config-file=... файлах), где # — любое положительное число, начиная с 1. Мы говорим про этот номер далее как про номер группы опций, или mysqld_multi чтобы указать, какие серверы вы хотите запустить, остановить или получить статус. Эти группы должны быть такими же, как и обычная группа [mysqld], но с такими портом, сокетом и т.д., которые требуются для каждого отдельного процесса mysqld.
mysqld_multi запускается в таком синтаксисе:
Использование: mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
или mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
здесь означает номер группы. Можно запускать, останавливать или создавать отчеты о любом или о нескольких из них одновременно. Получить пример о том, как бы вы могли настроить файл опций, можно так:
shell> mysqld_multi -example
В качестве разделителей в списке применяются запятые, комбинации создаются при помощи тире. Последнее означает, что будут задействованы все номера из диапазона GNR1-GNR2. Если не задан аргумент , то все группы будут либо запущены, либо остановлены, либо будет выведен отчет об этих группах. Обратите внимание, что в списке не должно быть никаких пропусков (пробелов, символов табуляции или пустых строк). Любые данные после пропуска будут игнорироваться.
mysqld_multi поддерживает следующие опции:
-config-file=... |
Альтернативный файл конфигурации ( config file ). Примечание: данный файл не влияет на собственные опции этой программы (группа [mysqld_multi] ), а только на группы [mysqld#]. Без этой опции поиск всех данных будет осуществляться только в обычном файле my. |
-example |
Представляет пример файла конфигурации |
-log=... |
Файл журнала. Имя файла журнала и полный путь к нему. Примечание: если файл существует, записи будут добавляться в конец файла |
-mysqladmin=... |
Исполняемый файл mysqladmin, используемый для завершения работы сервера |
-mysqld=... |
Исполняемый файл mysqld, который будет использоваться. Обратите внимание: в этой опции можно также указывать safe_mysqld. Опции передаются mysqld. Необходимо только удостовериться, что в переменной окружения PATH имеется mysqld или что установлен safe_mysqld |
-no-log |
Вывод в stdout вместо журнала. По умолчанию журналы включены |
-password=... |
Пароль пользователя для доступа к mysqladmin |
-tcp-ip |
Подсоединение к серверу(ам) MySQL по TCP/IP вместо Unix-сокетов. Данная опция влияет на завершение работы сервера и создание отчетов. Если файл сокета отсутствует, сервер будет работать, но к нему можно будет обращаться только через порт TCP/IP. По умолчанию соединение осуществляется через сокет Unix |
-user=... |
Имя пользователя MySQL для mysqladmin |
-version |
Вывод номера версии и завершение работы |
Утилита myisampack используется для сжатия таблиц , а утилита pack_isam — для сжатия таблиц . Поскольку таблицы являются устаревшими, здесь будет рассматриваться только myisampack.
myisampack сжимает каждый столбец в таблице по отдельности. Информация, необходимая для декомпрессии столбцов, считывается в память при открытии таблицы. В результате обеспечивается более высокая производительность при доступе к отдельным записям, поскольку нужно распаковывать только одну запись, а не значительно больший по размеру дисковый блок, как при использовании программы myisampack сжимает файл данных на 40%-70%.
MySQL использует отображение в памяти ( mmap() ) для сжатых таблиц, а если mmap() не работает, возвращается назад к нормальному режиму чтения/записи.
Обратите внимание на следующее:
myisampack может также сжимать столбцы c типами BLOB или TEXT.Утилиту myisampack можно запустить следующим образом:
shell> myisampack [options] filename ...
Каждое имя файла ( filename ) должно быть именем индексного файла ( .MYI ). Если вы не находитесь в директории базы данных, необходимо указать полный путь к файлу. Допускается опускать расширение .MYI.
myisampack поддерживает следующие опции:
-b, -backup |
Создает резервную копию таблицы, присваивая ей имя tbl_name.OLD |
-#, -debug=debug_options |
Выводить журнал отладки. Строка debug_options часто принимает значение d:t:o,filename |
-f, -force |
Сжатие таблицы происходит, даже если она увеличивается или если существует временный файл. Во время сжатия таблицы myisampack создает временный файл tbl_name.. Если вы вручную прекратите выполнение myisampack, может оказаться, что файл tbl_name. не будет удален. Обычно если myisampack обнаруживает существующий tbl_name., она прекращает работу и выдает ошибку. При указании опции -force myisampack сжимает таблицу в любом случае |
-j big_tbl_name, -join=big_tbl_name |
Соединяет все таблицы, указанные в командной строке, в одну таблицу big_tbl_name. Все таблицы, подлежащие объединению, должны быть идентичными (одинаковые имена и типы столбцов, одинаковые индексы и т.д.) |
-p #, -packlength=# |
Определяет разрядность поля, хранящего длину строки, в байтах. Может принимать значения 1, 2 или 3. ( myisampack хранит все строки с указателями длины размером в 1, 2, или 3 байта. В большинстве случаев myisampack способна определить правильное значение длины перед началом сжатия файла, но во время сжатия она может обнаружить, что может быть использована более короткая длина. В этом случае myisampack выведет сообщение о том, что в следующий раз при сжатии данного файла можно использовать более короткую длину записи.) |
-s, -silent |
Молчаливый режим. Сообщения выводятся только при возникновении ошибок |
-t, -test |
Сжатие таблицы не выполняется, происходит только проверка процедуры сжатия |
-T dir_name, -tmp_dir=dir_name |
Указанная директория используется как местоположение для создания временной таблицы |
-w, -wait |
Если таблица уже используется, подождать повторить попытку. Если сервер mysqld был вызван с опцией -skip-external-locking, то не самая лучшая идея — вызывать myisampack, если таблица может модифицироваться во время процесса сжатия |
Последовательность приведенных ниже команд иллюстрирует типичный сеанс сжатия таблицы:
shell> ls -l station.* -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-02-02 3:06:43 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2 Max datafile length: 54657023 Max keyfile length: 33554431 Recordlength: 834 Record format: Fixed length table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 1024 1024 1 2 32 30 multip. text 10240 1024 1 Field Start Length Type 1 1 1 2 2 4 ... ... ... ... ... ... ... ... 56 827 4 57 831 4 shell> myisampack station.MYI Compressing station.MYI: (1192 records) - Calculating statistics normal: 20 empty-space: 16 empty-zero: 12 empty-fill: 11 pre-space: 0 end-space: 12 table-lookups: 5 zero: 7 Original trees: 57 After join: 17 - Compressing file 87.14% shell> ls -l station.* -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-04-17 19:04:26 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 1 Max datafile length: 16777215 Max keyfile length: 131071 Recordlength: 834 Record format: Compressed table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 10240 1024 1 2 32 30 multip. text 54272 1024 1 Field Start Length Type Huff tree Bits 1 1 1 constant 1 0 2 2 4 zerofill(1) 2 9 3 6 4 no zeros, zerofill(1) 2 9 4 10 1 3 9 5 11 20 table-lookup 4 0 6 31 1 3 9 7 32 30 no endspace, not_always 5 9 ... ... ... ... ... ... ... ... 53 805 1 17 1 54 806 1 3 9 55 807 20 no empty 3 9 56 827 4 no zeros, zerofill(2) 2 9 57 831 4 no zeros, zerofill(1) 2 9
Ниже приведено описание вывода myisampack:
normal |
Количество столбцов, для которых не используется никакого дополнительного сжатия |
empty-space |
Количество столбцов, содержащих пустые значения; они занимают по 1 биту |
empty-zero |
Количество целочисленных столбцов, в которых содержатся только двоичные нули ( ascii 0 ); каждый из них будет занимать 1 бит |
empty-fill |
Количество целочисленных столбцов, значения которых не полностью занимают отведенную для них разрядность в байтах; тип этих столбцов изменяется на тип с меньшей разрядностью (например, столбец INTEGER может быть изменен на MEDIUMINT ) |
pre-space |
Количество десятичных столбцов, которые хранятся с начальными пробелами. В этом случае каждое значение будет содержать число ведущих пробелов |
end-space |
Количество столбцов, имеющих много оконечных пробелов. В этом случае каждое значение будет содержать число таких пробелов |
table-lookup |
Столбец имеет только небольшое количество различающихся значений, которые перед сжатием Хаффмана ( Huffman ) конвертируются в ENUM |
zero |
Количество столбцов, все значения которых являются нулями |
Original trees |
Начальное количество деревьев Хаффмана |
After join |
Количество различных деревьев Хаффмана, оставленных после соединения деревьев для сохранения небольшого пространства в заголовках |
После сжатия таблицы myisamchk -dvv выводит дополнительную информацию по каждому полю.
Type Тип поля может содержать следующие дескрипторы:
constant |
Все строки содержат одинаковое значение |
no endspace |
Не сохраняются замыкающие пробелы |
no endspace, not_always |
Не сохраняются замыкающие пробелы и не производится сжатие за счет замыкающих пробелов для всех значений |
no endspace, no empty |
Не сохраняются замыкающие пробелы. Не сохраняются пустые значения |
table-lookup |
Столбец был преобразован к ENUM |
zerofill(n) |
В значении n главных байтов всегда являются 0 и не сохранены. |
no zeros |
Не сохраняются нули. |
always zero |
Значения 0 хранятся в 1 бите. |
Huff tree Дерево Хаффмана, связанное с полем.
Bits Количество битов, используемых в дереве Хаффмана.
После запуска pack_isam/myisampack нужно запустить isamchk/myisamchk для повторного создания индекса. В это время можно также отсортировать индексные блоки и создать статистику, необходимую для более эффективной работы оптимизатора MySQL:
myisamchk -rq -analyze -sort-index table_name.MYI isamchk -rq -analyze -sort-index table_name.ISM
После установки сжатой таблицы в директорию базы данных MySQL нужно проделать операцию mysqladmin flush-tables, чтобы сервер mysqld начал использовать новую таблицу.
Для распаковки сжатой таблицы можно использовать опцию - или myisamchk.
Все клиенты MySQL, которые взаимодействуют с сервером с помощью библиотеки mysqlclient, используют следующие переменные окружения:
| Имя | Описание |
|---|---|
MYSQL_UNIX_PORT |
Сокет, используемый по умолчанию для локальных подсоединений |
MYSQL_TCP_PORT |
Устанавливаемый по умолчанию порт TCP/IP |
MYSQL_PWD |
Устанавливаемый по умолчанию пароль |
MYSQL_DEBUG |
Опции пошаговой отладки программ |
TMPDIR |
Каталог для создания временных таблиц/файлов |
Клиент mysql использует файл, указанный в переменной окружения MYSQL_HISTFILE, для хранения истории командной строки. Значение по умолчанию для этого файла истории — $HOME/.mysql_history, где $HOME — значение переменной окружения HOME.
Все программы MySQL принимают множество различных опций.
Для всех стандартных клиентских программ можно переопределить
В приведенном ниже списке дано краткое описание клиентских программ MySQL.
msql2mysql |
Сценарий оболочки операционной системы, преобразующий программы базы данных mSQL к виду, приемлемому для MySQL. Он не обрабатывает всех случаев, но с него хорошо начинать такое преобразование |
mysqlaccess |
Сценарий, который проверяет |
mysqladmin |
Утилита для выполнения административных функций, таких, как создание или удаление баз данных, перезагрузка таблиц привилегий, запись на диск содержимого таблиц, находящегося в буфере, повторное открытие файлов журналов. Утилита mysqladmin может также использоваться для получения информации с сервера о номере версии, процессах и состоянии сервера |
mysqldump |
Выводит содержимое базы данных MySQL в виде файла с SQL-операторами или в виде текстовых файлов с символом табуляции в качестве разделителя |
mysqlimport |
Импортирует текстовые файлы в соответствующие таблицы, используя команду LOAD DATA INFILE |
>mysqlshow |
Отображает информацию о существующих базах данных, таблицах, полях и индексах |
replace |
Служебная программа, использующаяся в сценарии msql2mysql, но имеющая также более широкое применение. Утилита replace изменяет строки, находящиеся в файлах или в стандартных входных данных. Использует принцип конечного автомата, чтобы в первую очередь найти соответствие длинных строк. Может применяться для замены строк |
Утилита командной строки 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. |
-default-character-set=... |
Установить набор символов по умолчанию |
-e, -execute=... |
Выполнить команду и завершить программу (вывод результата как и для -batch ) |
-E, -vertical |
Вывести результаты запроса (строки) по вертикали. Можно произвести вывод подобным образом и без данного параметра, завершая команды символами \G |
-f, -force |
Продолжать обработку даже при обнаружении ошибки SQL |
-g, -no-named-commands |
Выключает именованные команды. Следует использовать только команды вида \* либо применять именованные команды только в начале строки, заканчивающейся символом ';' |
-i, -ignore-space |
Игнорировать пробел после имен функций |
-h, -host=... |
Подсоединиться к базе данных на указанном хосте |
-H, -html |
Вывести выходные данные в виде HTML |
-X, -xml |
Вывести выходные данные в виде XML |
-L, -skip-line-numbers |
Не указывать номера строк для ошибок. Полезно для сравнения результирующих файлов, включающих сообщения об ошибках |
-no-pager |
Блокирует stdout (в Unix) |
-no-tee |
Блокирует выходной файл. Смотрите также команду \h (интерактивная помощь) |
-n, -unbuffered |
Очищать буфер после каждого запроса |
-N, -skip-column-names |
Не указывать имена столбцов в результатах |
-o, -one-database |
Обновить только базу данных, установленную по умолчанию. Позволяет пропускать обновления другой базы данных в журнале обновления |
-pager[=...] |
Устанавливает тип данных вывода. По умолчанию это переменная окружения . Ее возможные значения - less, more, cat [> имя файла], и т.д. |
-p[password], - password[=...] |
Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -p не оставляйте пробел между параметром и значением пароля |
-P порт, -port=порт |
Номер порта TCP/IP, используемый для подсоединения |
-q, -quick |
Не кэшировать результат. Выводить его строка за строкой так, как он приходит от сервера. Это может замедлить скорость работы сервера, если вывод результата будет приостановлен. Файл истории не используется |
-s, -silent |
Режим молчания. Выводить только сообщения об ошибках |
-S -socket=... |
Файл сокета, используемый для подсоединения |
-t -table |
Выводить результат в табличном формате. Установлено по умолчанию для непакетного режима |
-tee=... |
Присоединить что-либо к выходному файлу. Смотрите также команду \h (интерактивная помощь). Этот параметр не работает в пакетном режиме |
-u, -user=# |
Имя пользователя MySQL, если этот пользователь не является активным в данное время |
Утилита для выполнения административных операций. Ее синтаксис:
shell> mysqladmin [ПАРАМЕТРЫ] command [command-option] command ...
Список опций, поддерживаемых вашей конкретной версией mysqladmin, можно получить, выполнив команду mysqladmin -help.
Текущая версия mysqladmin поддерживает следующие команды:
create databasename Создать новую базу данных.
drop databasenameУдалить базу данных и все ее таблицы.
extended-status Выдает расширенный отчет о состоянии сервера (более полный, чем при команде status ).
flush-hosts Сбросить и перезагрузить хосты.
flush-logs Сбросить на диск и переоткрыть все журналы.
flush-tables Закрыть все открытые таблицы.
flush-privileges Перечитать таблицы привилегий.
kill id,id,...Завершить потоки mysql с указанными thread-id.
password Установить новый пароль для сервера баз данных. Изменить старый пароль на новый.
ping Проверить, работает ли сервер mysqld.
processlist Показать список активных потоков на сервере.
reload Перезагрузить таблицы привилегий.
refresh Выполнить все табличные операции, находящиеся в буфере, закрыть и открыть заново все системные журналы.
shutdown Завершить работу сервера баз данных.
slave-start Запустить подчиненный дублирующий поток.
slave-stop Остановить подчиненный дублирующий поток.
status Выдает краткий отчет о состоянии сервера.
variables Вывести доступные для использования переменные.
version Вывести данные о версии сервера.
Все команды могут сокращаться до их уникальных префиксов. Например:
shell> mysqladmin proc stat +----+-------+-----------+----+-------------+------+-------+------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+----+-------------+------+-------+------+ | 6 | monty | localhost | | Processlist | 0 | | | +----+-------+-----------+----+-------------+------+-------+------+ Uptime: 10077 Threads: 1 Questions: 9 Slow queries: 0 Opens: 6 Flush tables: 1 Open tables: 2 Memory in use: 1092K Max memory used: 1116K
Результат команды mysqladmin status выводится в виде следующих столбцов:
| Столбец | Описание |
|---|---|
|
Количество секунд с момента запуска MySQL-сервера |
Threads |
Количество активных потоков (клиентов) |
Questions |
Количество вопросов от клиентов с момента запуска программы mysqld |
|
Количество запросов, потребовавших большее количество секунд, чем установлено в конфигурации ключом long_query_time |
Opens |
Количество таблиц, открытых программой mysqld |
Flush table |
Количество выполненных команд flush ..., refresh, |
Open tables |
Количество таблиц, открытых в данное время |
Memory in use |
Память, используемая непосредственно программой mysqld (доступно только в случае компиляции MySQL с установленным значением -with-debug=full ) |
Max memory used |
Максимальный объем памяти, использованный непосредственно программой mysqld (доступно только в случае компиляции MySQL с установленным значением -with-debug=full ) |
При выполнении mysqladmin shutdown через сокет (другими словами, через компьютер с запущенным mysqld ) mysqladmin будет ожидать, пока на сервере MySQL не будет удален файл pid-file (в котором содержится идентификатор процесса pid запущенного сервера), чтобы убедиться, что сервер остановлен должным образом.
Начиная с версии MySQL 3.23.38, можно применять новый инструмент для проверки и восстановления -таблиц. Отличие mysqlcheck от myisamchk состоит в том, что утилита mysqlcheck должна использоваться при работающем сервере mysqld, в то время как myisamchk — при остановленном. Преимущество же заключается в том, что теперь не нужно останавливать сервер для проверки или восстановления таблиц.
Утилита mysqlcheck использует соответствующие команды MySQL-сервера CHECK, , ANALYZE и OPTIMIZE удобным для пользователя образом.
Существует три альтернативных способа запуска mysqlcheck:
shell> mysqlcheck [OPTIONS] database [tables] shell> mysqlcheck [OPTIONS] -databases DB1 [DB2 DB3...] shell> mysqlcheck [OPTIONS] -all-databases
Таким образом, утилита может использоваться подобно mysqldump по отношению к выбранным базам данных и таблицам.
В сравнении с другими клиентами утилита mysqlcheck имеет следующую отличительную особенность: установка поведения по умолчанию (проверка таблиц, -с ) может быть изменена путем переименования исполняемого файла утилиты. Итак, чтобы получить инструмент, восстанавливающий таблицы по умолчанию, просто скопируйте mysqlcheck с новым именем, mysqlrepair, или, наоборот, сделайте mysqlcheck и обозначьте ее как mysqlrepair. Если теперь запустить mysqlrepair, то утилита по умолчанию будет восстанавливать таблицы.
Данная утилита позволяет получить дамп ("моментальный снимок") содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер баз данных (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц.
Если же резервная копия создается на сервере, то вместо описываемой утилиты следует использовать mysqlhotcopy.
shell> mysqldump [OPTIONS] database [tables] или mysqldump [OPTIONS] -databases [OPTIONS] DB1 [DB2 DB3...] или mysqldump [OPTIONS] -all-databases [OPTIONS]
Если не указывать имена таблиц или использовать параметры -databases или -all-databases, то будет получен дамп базы данных в целом (соответственно — всех баз данных).
Перечень опций, поддерживаемых вашей конкретной версией утилиты mysqldump, можно получить, выполнив команду mysqldump -help.
Следует иметь в виду, что утилита mysqldump, используемая без опций -quick или -opt, перед тем, как сделать дамп результата выборки информации, загрузит весь результат в память. Это может создать проблемы при получении дампа большой базы данных.
Учтите, что не следует применять параметры -opt или -e, если вы собираетесь использовать для получения дампа новую копию программы mysqldump, а затем воспроизводить его на очень старом MySQL-сервере.
Утилита mysqldump поддерживает следующие опции:
-add-locks
Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL).
-add-drop-table
Добавить команду DROP TABLE перед каждой командой CREATE TABLE.
-A, -all-databases
Произвести дамп всех баз данных. Аналогично опции -databases с указанием всех баз данных.
-a, -all
Включить все опции создания объектов, специфичные для MySQL.
-allow-keywords
Разрешить создавать имена столбцов, которые совпадают с ключевыми словами. Отсутствие конфликтов обеспечивается прибавлением имени таблицы в качестве префикса к имени каждого столбца.
-c, -complete-insert
Использовать полные команды INSERT (с именами столбцов).
-C, -compress
Использовать сжатие всей информации между клиентом и сервером, если они оба поддерживают сжатие.
-B, -databases
Выполнить дамп нескольких баз данных. Обратите внимание на разницу в применении: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных. Оператор USE db_name; включается в вывод перед каждой новой базой данных.
-delayed
Использовать команду INSERT DELAYED при вставке строк.
-e, -extended-insert
Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода).
-#, -debug[=option_string]
Отслеживать прохождение программы (для отладки).
-help
Вывести справочную информацию и выйти из программы.
-fields-terminated-by=... , -fields-enclosed-by=... , -fields-optionally-enclosed-by=... , -fields-escaped-by=... , -lines-terminated-by=...
Эти опции используются совместно с параметром -T и имеют то же самое значение, что и соответствующие операторы для LOAD DATA INFILE.
-F, -flush-logs
Записать на диск данные
-f, -force,
Продолжать даже при получении ошибки SQL при выполнении дампа таблицы.
-h, -host=..
Выполнить дамп данных MySQL сервера на указанном хосте. Значение хоста по умолчанию — localhost.
-l, -lock-tables.
Заблокировать все таблицы перед началом выполнения дампа. Таблицы блокируются оператором READ LOCAL, чтобы разрешить параллельные записи для -lock-tables блокирует таблицы каждой базы по отдельности. Таким образом, использование этого параметра не гарантирует, что таблицы будут логически непротиворечивы в пределах этих баз данных. В различных базах данных при выполнении дампа таблицы могут находиться в совершенно разных состояниях.
-K, -disable-keys
Добавляет выражение /*!40000 ALTER TABLE tb_name DISABLE KEYS */; и /*!40000 ALTER TABLE tb_name ENABLE KEYS */; в выводе результата. Это ускорит загрузку данных на сервер MySQL 4.0, так как индексы создаются после внесения всех данных.
-n, -no-create-db
В выводе результата выражение CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; будет отсутствовать. Данная строка будет добавлена в любом случае при использовании опций -databases или -all-databases.
-t, -no-create-info
Не записывать информацию о создании таблицы (команда CREATE TABLE ).
-d, -no-data
Не записывать информацию из строк таблицы. Это очень полезно для получения дампа структуры таблицы!
-opt
То же, что и -quick -add-drop-table -add-locks -extended-insert -lock-tables. Должно дать наиболее быстрый дамп для чтения на MySQL-сервере.
-pyour_pass, -password[=your_pass]
Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqldump предложит ввести пароль.
-P port_num, -port=port_num
Номер порта TCP/IP, используемого для подключения к хосту.
-protocol=(TCP | SOCKET | PIPE | MEMORY)
Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
-q, -quick
Выводить дамп непосредственно на стандартный вывод stdout без буферизации запроса. Для этого используется функция mysql_use_result().
-Q, -quote-names
Взять в кавычки имена таблиц и столбцов без символов '`'.
-r, -result-file=...
Прямой вывод указанного файла. Этот опцию следует использовать в MS DOS, так как она предотвращает преобразование символа новой строки '\n' в последовательность '\n\r' (новая строка + возврат каретки).
-single-transaction
Данная опция выдает SQL-команду BEGIN перед выполнением дампа данных с сервера. Наиболее часто используется с -таблицамии и уровнем изоляции транзакций READ_COMMITTED, так как именно в этом режиме можно получить дамп с непротиворечивым состоянием базы данных после выполнения команды BEGIN без блокирования каких-либо приложений. Используя эту опцию, необходимо помнить, что при выполнении дампа только транзакционные таблицы будут находиться в непротиворечивом состоянии, т.е. некоторые или таблицы при использовании данной опции могут все же изменить свое состояние.
Опция -single-transaction добавлена в версии 4.0.2. Она является взаимоисключающей по отношению к опции -lock-tables, так как команда LOCK TABLES уже принимает открытую транзакцию.
-S /path/to/socket, -socket=/path/to/socket
Файл сокета для подсоединения к localhost (значение хоста по умолчанию).
-tables
Перекрывает параметр -databases (-B).
-T, -tab=path-to-some-directory
Для каждой заданной таблицы создает файл table_name.sql, содержащий SQL CREATE команды для создания таблицы, и файл table_name.txt с данными таблицы. Файл .txt имеет формат в соответствии с параметрами -fields-xxx и -lines-xxx. Примечание: этот параметр работает только при условии, что утилита mysqldump запущена на том же компьютере, что и демон mysqld, причем пользователь/группа, запустившие данный поток mysqld (обычно это пользователь mysql и группа mysql ), должны иметь право создавать/записывать файл по указанному адресу.
-u user_name, -user=user_name
Имя пользователя MySQL-сервера, используемое при подключении к серверу. Значением по умолчанию является имя пользователя Unix.
-O var=option, -set-variable var=option
Установить значения переменных. Доступные для использования переменные перечислены ниже. В MySQL 4.0 просто используйте -var=option.
-v, -verbose
Расширенный режим вывода. Вывод более детальной информации о работе программы.
-V, -version
Вывести информацию о версии и выйти из программы.
-w, -where='where-condition'
Выполнить дамп только выбранных записей. Обратите внимание, что кавычки обязательны.
"-where=user='jimf'" "-wuserid>1" "-wuserid<1"
-X, -xml
Представляет дамп базы данных в виде XML.
-x, -first-slave
Блокирует все таблицы во всех базах данных.
-O net_buffer_length=#, where # < 16M
При создании многострочных операторов ввода (как и в случаях применения параметров -extended-insert или -opt ) утилита mysqldump будет создавать строки длиной вплоть до указанной в net_buffer_length. При увеличении значения этой переменной необходимо также убедиться в том, что в MySQL-сервере для переменной max_allowed_packet указано значение, большее, чем величина net_buffer_length.
Чаще всего утилита mysqldump используется для получения резервной копии всех баз данных.
mysqldump -opt database > backup-file.sql
Можно, наоборот, прочитать этот файл на MySQL-сервере посредством команды:
mysql database < backup-file.sql
или
mysql -e "source /patch-to-backup/backup-file.sql" database
Данная утилита достаточно часто используется и для переноса информации из базы данных на другой MySQL-сервер:
mysqldump -opt database | mysql -host=remote-host -C database
Вполне возможно получить дамп нескольких баз данных с помощью одной команды:
mysqldump -databases database1 [database2 ...] > my_databases.sql
Если необходим дамп всех баз данных, можно использовать:
mysqldump -all-databases > all_databases.sql
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или для быстрого получения резервной копии базы данных. Пожалуй, это наиболее быстрый способ копирования баз данных или таблиц, но он может работать только на том же компьютере, где расположены каталоги копируемой базы данных.
mysqlhotcopy db_name [/path/to/new_directory] mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory mysqlhotcopy db_name./regex/
Утилита mysqlhotcopy поддерживает следующие опции:
-u, -user=#
Имя пользователя для входа в базу данных.
-p, -password=#
Используемый пароль при подсоединении к серверу.
-P, -port=#
Номер порта, используемого для подсоединения к локальному серверу.
-S, -socket=#
Номер сокета, используемого для подсоединения к локальному серверу.
-keepold
Не удалять предыдущий результат (только что переименованный) после выполнения команды.
-q, -quiet
Выводить только сообщения об ошибках.
-debug
Разрешить отладку.
-n, -dryrun
Сообщать о действиях без их выполнения.
-regexp=#
Копировать все базы данных с именами, встречающимися в функции
-checkpoint=#
Внести проверочную запись в предусмотренную таблицу базы данных.
-flushlog
Записать на диск данные журналов из буфера, как только все таблицы заблокируются.
-tmpdir=#
Временная директория (вместо /tmp ).
А также некоторые другие. Более полное описание данного сценария можно посмотреть в документации по языку программирования Perl.
Сценарий mysqlhotcopy берет информацию для групп [client] и [mysqlhotcopy] из файлов опций.
Для выполнения программы mysqlhotcopy необходимы доступ для записи в директорию, куда будет помещена копия, и привилегия выполнения команды SELECT для копируемых таблиц и команды для MySQL-сервера (чтобы выполнить FLUSH TABLES ).
Утилита mysqlimport обеспечивает интерфейс командной строки для SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport полностью соответствует аналогичным параметрам для оператора LOAD DATA INFILE.
Утилита mysqlimport вызывается следующим образом:
shell> mysqlimport [параметры] database textfile1 [textfile2 ...]
Для каждого текстового файла, указанного в командной строке, mysqlimport удаляет расширение в каждом имени файла и использует его, чтобы определить, в какую таблицу занести содержимое. Например, файлы с именами patient.txt, patient.text и patient должны быть все занесены в таблицу с именем patient.
Утилита mysqlimport поддерживает следующие опции:
-c, -columns=...
Эта опция принимает в качестве аргумента список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей команды LOAD DATA INFILE, которая затем посылается в MySQL.
-C, -compress
Использовать компрессию в связи между клиентом и сервером, если они оба поддерживают сжатие.
-#, -debug[=option_string]
Отслеживать прохождение программы (для отладки).
-d, -delete
Удалить данные из таблицы перед импортированием текстового файла.
-f, -force
Игнорировать ошибки. Например, если таблица для текстового файла не существует, продолжать обработку остающихся файлов. Без параметра -force утилита mysqlimport прекращает работу при отсутствии таблицы.
-h host_name, -host=host_name
Импортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию — localhost.
-l, -lock-tables
Заблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.
-L, -local
Читать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к localhost (значение хоста по умолчанию).
-pyour_pass, -password[=your_pass]
Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqlimport предложит ввести пароль.
-P port_num, -port=port_num
Номер порта TCP/IP, используемого для подсоединения к хосту.
-r, -replace
Опции -replace и -ignore управляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение -replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение -ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется.
-s, -silent
Режим молчания. Выводить только сообщения об ошибках.
-u user_name, -user=user_name
Имя пользователя MySQL-сервера, используемое при подсоединении к серверу. Значением по умолчанию является имя для входа в Unix.
Утилита mysqlshow позволяет кратко ознакомиться с существующими базами данных, их таблицами и столбцами таблиц.
Аналогичную информацию можно получить с помощью программы mysql, используя команду SHOW.
Утилита mysqlshow вызывается следующим образом:
shell> mysqlshow [ПАРАМЕТРЫ] [database [table [column]]]
Следует отметить, что в более новых версиях MySQL пользователь может просмотреть только те базы/таблицы/столбцы, для которых у него имеются соответствующие привилегии.
Если последний аргумент содержит в себе шаблонные символы ( *, ?, % или _ ) процессора или SQL, то будут представлены только данные, совпадающие с шаблоном. Если имя базы данных содержит подчеркивание, то оно должно быть экранировано обратным слешем (некоторые оболочки в Unix востребуют два обратных слеша) для того, чтобы получить корректные имена. '*' конвертируются в '%' и '?' - в '_'.
Это может вызвать путаницу при попытке просмотреть столбцы таблицы с символом _, так как в таком случае mysqlshow покажет только имена таблиц, совпадающие с шаблоном. Ситуацию можно легко исправить добавлением дополнительного символа % в конец командной строки (как отдельного аргумента).
Для большинства системных ошибок, помимо внутреннего текстового сообщения MySQL, можно также выводить номер кода системной ошибки в одном из следующих стилей: message ... (errno: #) или message ... (Errcode: #).
Выяснить, что данный код ошибки означает, можно либо путем изучения документации на данную систему, либо воспользовавшись возможностями утилиты perror.
perror выводит описание кода системной ошибки или код ошибки обработчика таблиц .
perror вызывается следующим образом:
shell> perror [ПАРАМЕТРЫ] [ERRORCODE [ERRORCODE...]]
Пример:
shell> perror 13 64 Error code 13: Доступ запрещен Error code 64: Компьютер не находится в сети
Следует учитывать, что сообщения об ошибках в большинстве своем являются системно-зависимыми!
Обычно клиент mysql используется в интерактивном режиме, например, следующим образом:
shell> mysql database
Однако вполне можно поместить SQL команды в текстовый файл и указать mysql считывать входные данные из этого файла. Для этого необходимо создать текстовый файл text_file, содержащий команды, которые предстоит выполнить. Затем запускаем mysql как показано ниже:
shell> mysql database < text_file
Можно также запустить текстовый файл с командой USE db_name. В этом случае указывать имя базы данных в командной строке не обязательно:
shell> mysql < text_file
Если программа mysql уже работает, можно запустить файл с SQL-сценарием, используя команду source:
mysql> source filename;
Все программы MySQL имеют множество различных опций. При этом каждая программа MySQL поддерживает опцию -help, которую можно использовать для получения полного описания различных опций программы. Например, попробуйте выполнить mysql --help.
Заданные по умолчанию опции для всех стандартных программ можно переопределять при помощи файла опций.
В следующем списке приводятся краткие описания серверных программ MySQL.
myisamchk Утилита, применяемая для описания, проверки, оптимизации и восстановления таблиц MySQL. Поскольку утилита myisamchk имеет много функций, она описывается отдельно.
make_binary_distribution Создает бинарную поставку откомпилированного кода MySQL. Эту версию при помощи FTP можно передать на сайт support.mysql.com в директорию /pub/mysql/, чтобы ею могли воспользоваться и другие пользователи MySQL.
mysqlbug Сценарий, составляющий отчет о возникшей в MySQL неполадке. Этот сценарий должен всегда использоваться для составления отчета для почтового списка рассылки MySQL.
mysqldСам сервер MySQL, демон. Он должен работать постоянно.
mysql_install_db Создает таблицы привилегий MySQL с заданными по умолчанию привилегиями. Это обычно делается только один раз, при первой инсталляции MySQL в системе.
safe_mysqld , оболочка mysqld
В MySQL 4.0 safe_mysqld был переименован в mysqld_safe.
safe_mysqld — это сценарий, с помощью которого рекомендуется запускать демон mysqld на Unix. safe_mysqld служит для реализации неких дополнительных функций безопасности для mysqld, таких, как возможность перезапуска сервера при обнаружении ошибки и записи в журнал информации о процессе работы mysqld.
Если не указаны опции -mysqld=# или -mysqld-version=#, safe_mysqld будет использовать исполняемый файл mysqld-max, если последний существует. Если mysqld-max не существует, safe_mysqld запустит mysqld. Это позволяет легко выяснить, что даст использование mysqld-max вместо mysqld: просто скопируйте mysqld-max поверх mysqld, и он будет работать.
Как правило, редактировать сценарий safe_mysqld не следует, однако можно указать опции для safe_mysqld, поместив их в раздел [safe_mysqld] файла my. будет считывать все опции из разделов файлов опций [mysqld], [server] и [safe_mysqld].
Обратите внимание: все опции, которые вводятся в командной строке для safe_mysqld, передаются mysqld. Если требуется применить в safe_mysqld какие-либо опции, которые mysqld не поддерживает, эти опции нужно определить в файле опций.
Большинство опций safe_mysqld - те же, что и у mysqld.
Safe_mysqld поддерживает следующие опции:
-ledir=path |
Путь к mysqld |
-log-error=path |
Записывать журнал ошибок в указанный файл |
-datadir=path, -defaults-extra-file=path, -defaults-file=path, -log=path, -pid-file=path |
Служебные пути для mysqld |
-no-defaults |
|
-open-files-limit=# |
Максимальное количество файлов, которые могут быть открыты mysqld. Значение передается ulimit -n. Обратите внимание: чтобы эта опция работала корректно, необходимо запустить safe_mysqld от пользователя root! |
-port=# |
Номер порта для сетевой связи |
-socket=path |
Сокет для связи |
-timezone=# |
Устанавливает переменную часового пояса ( TZ ) в значение, передаваемое в этом параметре |
-core-file-size=# |
Размер файла, который mysqld должен быть способен создать. Используйте ulimit -c |
-mysqld=mysqld-version |
Имя версии mysqld в каталоге ledir |
-user=# |
Имя пользователя |
Сценарий safe_mysqld написан таким образом, чтобы можно было запустить сервер, инсталлированный как из исходного кода, так и из бинарной поставки MySQL, даже если компоненты сервера, в зависимости от используемой инсталляции, будут размещены несколько по-другому. Для safe_mysqld требуется выполнение одного из следующих условий.
safe_mysqld. safe_mysqld ищет в своей рабочей директории bin и data (для бинарных дистрибутивов) или libexec и var (для дистрибутивов с исходным кодом). Это условие должно выполняться, если safe_mysqld запускается из директории, в которую инсталлирован MySQL (например /usr/local/mysql для бинарного дистрибутива).safe_mysqld пытается найти их по абсолютным путям. Типичные местоположения — /usr/local/libexec и /usr/local/var. Действительные местоположения определяются при создании дистрибутива, из которого запускается safe_mysqld. Они должны быть корректными, если MySQL был инсталлирован в стандартное местоположение.Поскольку safe_mysqld будет пытаться найти сервер и базы данных относительно собственной рабочей директории, можно инсталлировать двоичный дистрибутив MySQL куда угодно, при условии, что safe_mysqld будет запускаться из директории, в которой установлен MySQL:
shell> cd mysql_installation_directory shell> bin/safe_mysqld
Если safe_mysqld не может запустить сервер, даже в том случае, когда он вызывается из инсталляционной директории MySQL, сценарий safe_mysqld можно модифицировать так, чтобы он использовал верный путь к mysqld и опции путей, которые являются правильными для вашей системы. Обратите внимание: если в будущем вы будете делать апгрейд MySQL, новая версия safe_mysqld будет записана поверх старой, поэтому нужно сделать копию отредактированной версии, которую вы сможете затем установить повторно.
Программа mysqld_multi предназначена для управления несколькими процессами mysqld, работающих на различных сокетах Unix и портах TCP/IP.
Программа будет искать группу(группы) [mysqld#] в my. (или заданных при помощи -config-file=... файлах), где # — любое положительное число, начиная с 1. Мы говорим про этот номер далее как про номер группы опций, или mysqld_multi чтобы указать, какие серверы вы хотите запустить, остановить или получить статус. Эти группы должны быть такими же, как и обычная группа [mysqld], но с такими портом, сокетом и т.д., которые требуются для каждого отдельного процесса mysqld.
mysqld_multi запускается в таком синтаксисе:
Использование: mysqld_multi [OPTIONS] {start|stop|report} [GNR,GNR,GNR...]
или mysqld_multi [OPTIONS] {start|stop|report} [GNR-GNR,GNR,GNR-GNR,...]
здесь означает номер группы. Можно запускать, останавливать или создавать отчеты о любом или о нескольких из них одновременно. Получить пример о том, как бы вы могли настроить файл опций, можно так:
shell> mysqld_multi -example
В качестве разделителей в списке применяются запятые, комбинации создаются при помощи тире. Последнее означает, что будут задействованы все номера из диапазона GNR1-GNR2. Если не задан аргумент , то все группы будут либо запущены, либо остановлены, либо будет выведен отчет об этих группах. Обратите внимание, что в списке не должно быть никаких пропусков (пробелов, символов табуляции или пустых строк). Любые данные после пропуска будут игнорироваться.
mysqld_multi поддерживает следующие опции:
-config-file=... |
Альтернативный файл конфигурации ( config file ). Примечание: данный файл не влияет на собственные опции этой программы (группа [mysqld_multi] ), а только на группы [mysqld#]. Без этой опции поиск всех данных будет осуществляться только в обычном файле my. |
-example |
Представляет пример файла конфигурации |
-log=... |
Файл журнала. Имя файла журнала и полный путь к нему. Примечание: если файл существует, записи будут добавляться в конец файла |
-mysqladmin=... |
Исполняемый файл mysqladmin, используемый для завершения работы сервера |
-mysqld=... |
Исполняемый файл mysqld, который будет использоваться. Обратите внимание: в этой опции можно также указывать safe_mysqld. Опции передаются mysqld. Необходимо только удостовериться, что в переменной окружения PATH имеется mysqld или что установлен safe_mysqld |
-no-log |
Вывод в stdout вместо журнала. По умолчанию журналы включены |
-password=... |
Пароль пользователя для доступа к mysqladmin |
-tcp-ip |
Подсоединение к серверу(ам) MySQL по TCP/IP вместо Unix-сокетов. Данная опция влияет на завершение работы сервера и создание отчетов. Если файл сокета отсутствует, сервер будет работать, но к нему можно будет обращаться только через порт TCP/IP. По умолчанию соединение осуществляется через сокет Unix |
-user=... |
Имя пользователя MySQL для mysqladmin |
-version |
Вывод номера версии и завершение работы |
Утилита myisampack используется для сжатия таблиц , а утилита pack_isam — для сжатия таблиц . Поскольку таблицы являются устаревшими, здесь будет рассматриваться только myisampack.
myisampack сжимает каждый столбец в таблице по отдельности. Информация, необходимая для декомпрессии столбцов, считывается в память при открытии таблицы. В результате обеспечивается более высокая производительность при доступе к отдельным записям, поскольку нужно распаковывать только одну запись, а не значительно больший по размеру дисковый блок, как при использовании программы myisampack сжимает файл данных на 40%-70%.
MySQL использует отображение в памяти ( mmap() ) для сжатых таблиц, а если mmap() не работает, возвращается назад к нормальному режиму чтения/записи.
Обратите внимание на следующее:
myisampack может также сжимать столбцы c типами BLOB или TEXT.Утилиту myisampack можно запустить следующим образом:
shell> myisampack [options] filename ...
Каждое имя файла ( filename ) должно быть именем индексного файла ( .MYI ). Если вы не находитесь в директории базы данных, необходимо указать полный путь к файлу. Допускается опускать расширение .MYI.
myisampack поддерживает следующие опции:
-b, -backup |
Создает резервную копию таблицы, присваивая ей имя tbl_name.OLD |
-#, -debug=debug_options |
Выводить журнал отладки. Строка debug_options часто принимает значение d:t:o,filename |
-f, -force |
Сжатие таблицы происходит, даже если она увеличивается или если существует временный файл. Во время сжатия таблицы myisampack создает временный файл tbl_name.. Если вы вручную прекратите выполнение myisampack, может оказаться, что файл tbl_name. не будет удален. Обычно если myisampack обнаруживает существующий tbl_name., она прекращает работу и выдает ошибку. При указании опции -force myisampack сжимает таблицу в любом случае |
-j big_tbl_name, -join=big_tbl_name |
Соединяет все таблицы, указанные в командной строке, в одну таблицу big_tbl_name. Все таблицы, подлежащие объединению, должны быть идентичными (одинаковые имена и типы столбцов, одинаковые индексы и т.д.) |
-p #, -packlength=# |
Определяет разрядность поля, хранящего длину строки, в байтах. Может принимать значения 1, 2 или 3. ( myisampack хранит все строки с указателями длины размером в 1, 2, или 3 байта. В большинстве случаев myisampack способна определить правильное значение длины перед началом сжатия файла, но во время сжатия она может обнаружить, что может быть использована более короткая длина. В этом случае myisampack выведет сообщение о том, что в следующий раз при сжатии данного файла можно использовать более короткую длину записи.) |
-s, -silent |
Молчаливый режим. Сообщения выводятся только при возникновении ошибок |
-t, -test |
Сжатие таблицы не выполняется, происходит только проверка процедуры сжатия |
-T dir_name, -tmp_dir=dir_name |
Указанная директория используется как местоположение для создания временной таблицы |
-w, -wait |
Если таблица уже используется, подождать повторить попытку. Если сервер mysqld был вызван с опцией -skip-external-locking, то не самая лучшая идея — вызывать myisampack, если таблица может модифицироваться во время процесса сжатия |
Последовательность приведенных ниже команд иллюстрирует типичный сеанс сжатия таблицы:
shell> ls -l station.* -rw-rw-r-- 1 monty my 994128 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 53248 Apr 17 19:00 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-02-02 3:06:43 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafile pointer (bytes): 2 Keyfile pointer (bytes): 2 Max datafile length: 54657023 Max keyfile length: 33554431 Recordlength: 834 Record format: Fixed length table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 1024 1024 1 2 32 30 multip. text 10240 1024 1 Field Start Length Type 1 1 1 2 2 4 ... ... ... ... ... ... ... ... 56 827 4 57 831 4 shell> myisampack station.MYI Compressing station.MYI: (1192 records) - Calculating statistics normal: 20 empty-space: 16 empty-zero: 12 empty-fill: 11 pre-space: 0 end-space: 12 table-lookups: 5 zero: 7 Original trees: 57 After join: 17 - Compressing file 87.14% shell> ls -l station.* -rw-rw-r-- 1 monty my 127874 Apr 17 19:00 station.MYD -rw-rw-r-- 1 monty my 55296 Apr 17 19:04 station.MYI -rw-rw-r-- 1 monty my 5767 Apr 17 19:00 station.frm shell> myisamchk -dvv station MyISAM file: station Isam-version: 2 Creation time: 1996-03-13 10:08:58 Recover time: 1997-04-17 19:04:26 Data records: 1192 Deleted blocks: 0 Datafile: Parts: 1192 Deleted data: 0 Datafilepointer (bytes): 3 Keyfile pointer (bytes): 1 Max datafile length: 16777215 Max keyfile length: 131071 Recordlength: 834 Record format: Compressed table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 4 unique unsigned long 10240 1024 1 2 32 30 multip. text 54272 1024 1 Field Start Length Type Huff tree Bits 1 1 1 constant 1 0 2 2 4 zerofill(1) 2 9 3 6 4 no zeros, zerofill(1) 2 9 4 10 1 3 9 5 11 20 table-lookup 4 0 6 31 1 3 9 7 32 30 no endspace, not_always 5 9 ... ... ... ... ... ... ... ... 53 805 1 17 1 54 806 1 3 9 55 807 20 no empty 3 9 56 827 4 no zeros, zerofill(2) 2 9 57 831 4 no zeros, zerofill(1) 2 9
Ниже приведено описание вывода myisampack:
normal |
Количество столбцов, для которых не используется никакого дополнительного сжатия |
empty-space |
Количество столбцов, содержащих пустые значения; они занимают по 1 биту |
empty-zero |
Количество целочисленных столбцов, в которых содержатся только двоичные нули ( ascii 0 ); каждый из них будет занимать 1 бит |
empty-fill |
Количество целочисленных столбцов, значения которых не полностью занимают отведенную для них разрядность в байтах; тип этих столбцов изменяется на тип с меньшей разрядностью (например, столбец INTEGER может быть изменен на MEDIUMINT ) |
pre-space |
Количество десятичных столбцов, которые хранятся с начальными пробелами. В этом случае каждое значение будет содержать число ведущих пробелов |
end-space |
Количество столбцов, имеющих много оконечных пробелов. В этом случае каждое значение будет содержать число таких пробелов |
table-lookup |
Столбец имеет только небольшое количество различающихся значений, которые перед сжатием Хаффмана ( Huffman ) конвертируются в ENUM |
zero |
Количество столбцов, все значения которых являются нулями |
Original trees |
Начальное количество деревьев Хаффмана |
After join |
Количество различных деревьев Хаффмана, оставленных после соединения деревьев для сохранения небольшого пространства в заголовках |
После сжатия таблицы myisamchk -dvv выводит дополнительную информацию по каждому полю.
Type Тип поля может содержать следующие дескрипторы:
constant |
Все строки содержат одинаковое значение |
no endspace |
Не сохраняются замыкающие пробелы |
no endspace, not_always |
Не сохраняются замыкающие пробелы и не производится сжатие за счет замыкающих пробелов для всех значений |
no endspace, no empty |
Не сохраняются замыкающие пробелы. Не сохраняются пустые значения |
table-lookup |
Столбец был преобразован к ENUM |
zerofill(n) |
В значении n главных байтов всегда являются 0 и не сохранены. |
no zeros |
Не сохраняются нули. |
always zero |
Значения 0 хранятся в 1 бите. |
Huff tree Дерево Хаффмана, связанное с полем.
Bits Количество битов, используемых в дереве Хаффмана.
После запуска pack_isam/myisampack нужно запустить isamchk/myisamchk для повторного создания индекса. В это время можно также отсортировать индексные блоки и создать статистику, необходимую для более эффективной работы оптимизатора MySQL:
myisamchk -rq -analyze -sort-index table_name.MYI isamchk -rq -analyze -sort-index table_name.ISM
После установки сжатой таблицы в директорию базы данных MySQL нужно проделать операцию mysqladmin flush-tables, чтобы сервер mysqld начал использовать новую таблицу.
Для распаковки сжатой таблицы можно использовать опцию - или myisamchk.
Все клиенты MySQL, которые взаимодействуют с сервером с помощью библиотеки mysqlclient, используют следующие переменные окружения:
| Имя | Описание |
|---|---|
MYSQL_UNIX_PORT |
Сокет, используемый по умолчанию для локальных подсоединений |
MYSQL_TCP_PORT |
Устанавливаемый по умолчанию порт TCP/IP |
MYSQL_PWD |
Устанавливаемый по умолчанию пароль |
MYSQL_DEBUG |
Опции пошаговой отладки программ |
TMPDIR |
Каталог для создания временных таблиц/файлов |
Клиент mysql использует файл, указанный в переменной окружения MYSQL_HISTFILE, для хранения истории командной строки. Значение по умолчанию для этого файла истории — $HOME/.mysql_history, где $HOME — значение переменной окружения HOME.
Все программы MySQL принимают множество различных опций.
Для всех стандартных клиентских программ можно переопределить
В приведенном ниже списке дано краткое описание клиентских программ MySQL.
msql2mysql |
Сценарий оболочки операционной системы, преобразующий программы базы данных mSQL к виду, приемлемому для MySQL. Он не обрабатывает всех случаев, но с него хорошо начинать такое преобразование |
mysqlaccess |
Сценарий, который проверяет |
mysqladmin |
Утилита для выполнения административных функций, таких, как создание или удаление баз данных, перезагрузка таблиц привилегий, запись на диск содержимого таблиц, находящегося в буфере, повторное открытие файлов журналов. Утилита mysqladmin может также использоваться для получения информации с сервера о номере версии, процессах и состоянии сервера |
mysqldump |
Выводит содержимое базы данных MySQL в виде файла с SQL-операторами или в виде текстовых файлов с символом табуляции в качестве разделителя |
mysqlimport |
Импортирует текстовые файлы в соответствующие таблицы, используя команду LOAD DATA INFILE |
>mysqlshow |
Отображает информацию о существующих базах данных, таблицах, полях и индексах |
replace |
Служебная программа, использующаяся в сценарии msql2mysql, но имеющая также более широкое применение. Утилита replace изменяет строки, находящиеся в файлах или в стандартных входных данных. Использует принцип конечного автомата, чтобы в первую очередь найти соответствие длинных строк. Может применяться для замены строк |
Утилита командной строки 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. |
-default-character-set=... |
Установить набор символов по умолчанию |
-e, -execute=... |
Выполнить команду и завершить программу (вывод результата как и для -batch ) |
-E, -vertical |
Вывести результаты запроса (строки) по вертикали. Можно произвести вывод подобным образом и без данного параметра, завершая команды символами \G |
-f, -force |
Продолжать обработку даже при обнаружении ошибки SQL |
-g, -no-named-commands |
Выключает именованные команды. Следует использовать только команды вида \* либо применять именованные команды только в начале строки, заканчивающейся символом ';' |
-i, -ignore-space |
Игнорировать пробел после имен функций |
-h, -host=... |
Подсоединиться к базе данных на указанном хосте |
-H, -html |
Вывести выходные данные в виде HTML |
-X, -xml |
Вывести выходные данные в виде XML |
-L, -skip-line-numbers |
Не указывать номера строк для ошибок. Полезно для сравнения результирующих файлов, включающих сообщения об ошибках |
-no-pager |
Блокирует stdout (в Unix) |
-no-tee |
Блокирует выходной файл. Смотрите также команду \h (интерактивная помощь) |
-n, -unbuffered |
Очищать буфер после каждого запроса |
-N, -skip-column-names |
Не указывать имена столбцов в результатах |
-o, -one-database |
Обновить только базу данных, установленную по умолчанию. Позволяет пропускать обновления другой базы данных в журнале обновления |
-pager[=...] |
Устанавливает тип данных вывода. По умолчанию это переменная окружения . Ее возможные значения - less, more, cat [> имя файла], и т.д. |
-p[password], - password[=...] |
Пароль, используемый при подсоединении к серверу баз данных. Если в командной строке пароль не указан, то он запрашивается у пользователя. При использовании краткой формы -p не оставляйте пробел между параметром и значением пароля |
-P порт, -port=порт |
Номер порта TCP/IP, используемый для подсоединения |
-q, -quick |
Не кэшировать результат. Выводить его строка за строкой так, как он приходит от сервера. Это может замедлить скорость работы сервера, если вывод результата будет приостановлен. Файл истории не используется |
-s, -silent |
Режим молчания. Выводить только сообщения об ошибках |
-S -socket=... |
Файл сокета, используемый для подсоединения |
-t -table |
Выводить результат в табличном формате. Установлено по умолчанию для непакетного режима |
-tee=... |
Присоединить что-либо к выходному файлу. Смотрите также команду \h (интерактивная помощь). Этот параметр не работает в пакетном режиме |
-u, -user=# |
Имя пользователя MySQL, если этот пользователь не является активным в данное время |
Утилита для выполнения административных операций. Ее синтаксис:
shell> mysqladmin [ПАРАМЕТРЫ] command [command-option] command ...
Список опций, поддерживаемых вашей конкретной версией mysqladmin, можно получить, выполнив команду mysqladmin -help.
Текущая версия mysqladmin поддерживает следующие команды:
create databasename Создать новую базу данных.
drop databasenameУдалить базу данных и все ее таблицы.
extended-status Выдает расширенный отчет о состоянии сервера (более полный, чем при команде status ).
flush-hosts Сбросить и перезагрузить хосты.
flush-logs Сбросить на диск и переоткрыть все журналы.
flush-tables Закрыть все открытые таблицы.
flush-privileges Перечитать таблицы привилегий.
kill id,id,...Завершить потоки mysql с указанными thread-id.
password Установить новый пароль для сервера баз данных. Изменить старый пароль на новый.
ping Проверить, работает ли сервер mysqld.
processlist Показать список активных потоков на сервере.
reload Перезагрузить таблицы привилегий.
refresh Выполнить все табличные операции, находящиеся в буфере, закрыть и открыть заново все системные журналы.
shutdown Завершить работу сервера баз данных.
slave-start Запустить подчиненный дублирующий поток.
slave-stop Остановить подчиненный дублирующий поток.
status Выдает краткий отчет о состоянии сервера.
variables Вывести доступные для использования переменные.
version Вывести данные о версии сервера.
Все команды могут сокращаться до их уникальных префиксов. Например:
shell> mysqladmin proc stat +----+-------+-----------+----+-------------+------+-------+------+ | Id | User | Host | db | Command | Time | State | Info | +----+-------+-----------+----+-------------+------+-------+------+ | 6 | monty | localhost | | Processlist | 0 | | | +----+-------+-----------+----+-------------+------+-------+------+ Uptime: 10077 Threads: 1 Questions: 9 Slow queries: 0 Opens: 6 Flush tables: 1 Open tables: 2 Memory in use: 1092K Max memory used: 1116K
Результат команды mysqladmin status выводится в виде следующих столбцов:
| Столбец | Описание |
|---|---|
|
Количество секунд с момента запуска MySQL-сервера |
Threads |
Количество активных потоков (клиентов) |
Questions |
Количество вопросов от клиентов с момента запуска программы mysqld |
|
Количество запросов, потребовавших большее количество секунд, чем установлено в конфигурации ключом long_query_time |
Opens |
Количество таблиц, открытых программой mysqld |
Flush table |
Количество выполненных команд flush ..., refresh, |
Open tables |
Количество таблиц, открытых в данное время |
Memory in use |
Память, используемая непосредственно программой mysqld (доступно только в случае компиляции MySQL с установленным значением -with-debug=full ) |
Max memory used |
Максимальный объем памяти, использованный непосредственно программой mysqld (доступно только в случае компиляции MySQL с установленным значением -with-debug=full ) |
При выполнении mysqladmin shutdown через сокет (другими словами, через компьютер с запущенным mysqld ) mysqladmin будет ожидать, пока на сервере MySQL не будет удален файл pid-file (в котором содержится идентификатор процесса pid запущенного сервера), чтобы убедиться, что сервер остановлен должным образом.
Начиная с версии MySQL 3.23.38, можно применять новый инструмент для проверки и восстановления -таблиц. Отличие mysqlcheck от myisamchk состоит в том, что утилита mysqlcheck должна использоваться при работающем сервере mysqld, в то время как myisamchk — при остановленном. Преимущество же заключается в том, что теперь не нужно останавливать сервер для проверки или восстановления таблиц.
Утилита mysqlcheck использует соответствующие команды MySQL-сервера CHECK, , ANALYZE и OPTIMIZE удобным для пользователя образом.
Существует три альтернативных способа запуска mysqlcheck:
shell> mysqlcheck [OPTIONS] database [tables] shell> mysqlcheck [OPTIONS] -databases DB1 [DB2 DB3...] shell> mysqlcheck [OPTIONS] -all-databases
Таким образом, утилита может использоваться подобно mysqldump по отношению к выбранным базам данных и таблицам.
В сравнении с другими клиентами утилита mysqlcheck имеет следующую отличительную особенность: установка поведения по умолчанию (проверка таблиц, -с ) может быть изменена путем переименования исполняемого файла утилиты. Итак, чтобы получить инструмент, восстанавливающий таблицы по умолчанию, просто скопируйте mysqlcheck с новым именем, mysqlrepair, или, наоборот, сделайте mysqlcheck и обозначьте ее как mysqlrepair. Если теперь запустить mysqlrepair, то утилита по умолчанию будет восстанавливать таблицы.
Данная утилита позволяет получить дамп ("моментальный снимок") содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер баз данных (не обязательно MySQL-сервер). Дамп будет содержать набор команд SQL для создания и/или заполнения таблиц.
Если же резервная копия создается на сервере, то вместо описываемой утилиты следует использовать mysqlhotcopy.
shell> mysqldump [OPTIONS] database [tables] или mysqldump [OPTIONS] -databases [OPTIONS] DB1 [DB2 DB3...] или mysqldump [OPTIONS] -all-databases [OPTIONS]
Если не указывать имена таблиц или использовать параметры -databases или -all-databases, то будет получен дамп базы данных в целом (соответственно — всех баз данных).
Перечень опций, поддерживаемых вашей конкретной версией утилиты mysqldump, можно получить, выполнив команду mysqldump -help.
Следует иметь в виду, что утилита mysqldump, используемая без опций -quick или -opt, перед тем, как сделать дамп результата выборки информации, загрузит весь результат в память. Это может создать проблемы при получении дампа большой базы данных.
Учтите, что не следует применять параметры -opt или -e, если вы собираетесь использовать для получения дампа новую копию программы mysqldump, а затем воспроизводить его на очень старом MySQL-сервере.
Утилита mysqldump поддерживает следующие опции:
-add-locks
Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL).
-add-drop-table
Добавить команду DROP TABLE перед каждой командой CREATE TABLE.
-A, -all-databases
Произвести дамп всех баз данных. Аналогично опции -databases с указанием всех баз данных.
-a, -all
Включить все опции создания объектов, специфичные для MySQL.
-allow-keywords
Разрешить создавать имена столбцов, которые совпадают с ключевыми словами. Отсутствие конфликтов обеспечивается прибавлением имени таблицы в качестве префикса к имени каждого столбца.
-c, -complete-insert
Использовать полные команды INSERT (с именами столбцов).
-C, -compress
Использовать сжатие всей информации между клиентом и сервером, если они оба поддерживают сжатие.
-B, -databases
Выполнить дамп нескольких баз данных. Обратите внимание на разницу в применении: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных. Оператор USE db_name; включается в вывод перед каждой новой базой данных.
-delayed
Использовать команду INSERT DELAYED при вставке строк.
-e, -extended-insert
Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода).
-#, -debug[=option_string]
Отслеживать прохождение программы (для отладки).
-help
Вывести справочную информацию и выйти из программы.
-fields-terminated-by=... , -fields-enclosed-by=... , -fields-optionally-enclosed-by=... , -fields-escaped-by=... , -lines-terminated-by=...
Эти опции используются совместно с параметром -T и имеют то же самое значение, что и соответствующие операторы для LOAD DATA INFILE.
-F, -flush-logs
Записать на диск данные
-f, -force,
Продолжать даже при получении ошибки SQL при выполнении дампа таблицы.
-h, -host=..
Выполнить дамп данных MySQL сервера на указанном хосте. Значение хоста по умолчанию — localhost.
-l, -lock-tables.
Заблокировать все таблицы перед началом выполнения дампа. Таблицы блокируются оператором READ LOCAL, чтобы разрешить параллельные записи для -lock-tables блокирует таблицы каждой базы по отдельности. Таким образом, использование этого параметра не гарантирует, что таблицы будут логически непротиворечивы в пределах этих баз данных. В различных базах данных при выполнении дампа таблицы могут находиться в совершенно разных состояниях.
-K, -disable-keys
Добавляет выражение /*!40000 ALTER TABLE tb_name DISABLE KEYS */; и /*!40000 ALTER TABLE tb_name ENABLE KEYS */; в выводе результата. Это ускорит загрузку данных на сервер MySQL 4.0, так как индексы создаются после внесения всех данных.
-n, -no-create-db
В выводе результата выражение CREATE DATABASE /*!32312 IF NOT EXISTS*/ db_name; будет отсутствовать. Данная строка будет добавлена в любом случае при использовании опций -databases или -all-databases.
-t, -no-create-info
Не записывать информацию о создании таблицы (команда CREATE TABLE ).
-d, -no-data
Не записывать информацию из строк таблицы. Это очень полезно для получения дампа структуры таблицы!
-opt
То же, что и -quick -add-drop-table -add-locks -extended-insert -lock-tables. Должно дать наиболее быстрый дамп для чтения на MySQL-сервере.
-pyour_pass, -password[=your_pass]
Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqldump предложит ввести пароль.
-P port_num, -port=port_num
Номер порта TCP/IP, используемого для подключения к хосту.
-protocol=(TCP | SOCKET | PIPE | MEMORY)
Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
-q, -quick
Выводить дамп непосредственно на стандартный вывод stdout без буферизации запроса. Для этого используется функция mysql_use_result().
-Q, -quote-names
Взять в кавычки имена таблиц и столбцов без символов '`'.
-r, -result-file=...
Прямой вывод указанного файла. Этот опцию следует использовать в MS DOS, так как она предотвращает преобразование символа новой строки '\n' в последовательность '\n\r' (новая строка + возврат каретки).
-single-transaction
Данная опция выдает SQL-команду BEGIN перед выполнением дампа данных с сервера. Наиболее часто используется с -таблицамии и уровнем изоляции транзакций READ_COMMITTED, так как именно в этом режиме можно получить дамп с непротиворечивым состоянием базы данных после выполнения команды BEGIN без блокирования каких-либо приложений. Используя эту опцию, необходимо помнить, что при выполнении дампа только транзакционные таблицы будут находиться в непротиворечивом состоянии, т.е. некоторые или таблицы при использовании данной опции могут все же изменить свое состояние.
Опция -single-transaction добавлена в версии 4.0.2. Она является взаимоисключающей по отношению к опции -lock-tables, так как команда LOCK TABLES уже принимает открытую транзакцию.
-S /path/to/socket, -socket=/path/to/socket
Файл сокета для подсоединения к localhost (значение хоста по умолчанию).
-tables
Перекрывает параметр -databases (-B).
-T, -tab=path-to-some-directory
Для каждой заданной таблицы создает файл table_name.sql, содержащий SQL CREATE команды для создания таблицы, и файл table_name.txt с данными таблицы. Файл .txt имеет формат в соответствии с параметрами -fields-xxx и -lines-xxx. Примечание: этот параметр работает только при условии, что утилита mysqldump запущена на том же компьютере, что и демон mysqld, причем пользователь/группа, запустившие данный поток mysqld (обычно это пользователь mysql и группа mysql ), должны иметь право создавать/записывать файл по указанному адресу.
-u user_name, -user=user_name
Имя пользователя MySQL-сервера, используемое при подключении к серверу. Значением по умолчанию является имя пользователя Unix.
-O var=option, -set-variable var=option
Установить значения переменных. Доступные для использования переменные перечислены ниже. В MySQL 4.0 просто используйте -var=option.
-v, -verbose
Расширенный режим вывода. Вывод более детальной информации о работе программы.
-V, -version
Вывести информацию о версии и выйти из программы.
-w, -where='where-condition'
Выполнить дамп только выбранных записей. Обратите внимание, что кавычки обязательны.
"-where=user='jimf'" "-wuserid>1" "-wuserid<1"
-X, -xml
Представляет дамп базы данных в виде XML.
-x, -first-slave
Блокирует все таблицы во всех базах данных.
-O net_buffer_length=#, where # < 16M
При создании многострочных операторов ввода (как и в случаях применения параметров -extended-insert или -opt ) утилита mysqldump будет создавать строки длиной вплоть до указанной в net_buffer_length. При увеличении значения этой переменной необходимо также убедиться в том, что в MySQL-сервере для переменной max_allowed_packet указано значение, большее, чем величина net_buffer_length.
Чаще всего утилита mysqldump используется для получения резервной копии всех баз данных.
mysqldump -opt database > backup-file.sql
Можно, наоборот, прочитать этот файл на MySQL-сервере посредством команды:
mysql database < backup-file.sql
или
mysql -e "source /patch-to-backup/backup-file.sql" database
Данная утилита достаточно часто используется и для переноса информации из базы данных на другой MySQL-сервер:
mysqldump -opt database | mysql -host=remote-host -C database
Вполне возможно получить дамп нескольких баз данных с помощью одной команды:
mysqldump -databases database1 [database2 ...] > my_databases.sql
Если необходим дамп всех баз данных, можно использовать:
mysqldump -all-databases > all_databases.sql
Утилита mysqlhotcopy представляет собой Perl-сценарий, использующий SQL-команды LOCK TABLES, FLUSH TABLES и Unix-утилиты cp или для быстрого получения резервной копии базы данных. Пожалуй, это наиболее быстрый способ копирования баз данных или таблиц, но он может работать только на том же компьютере, где расположены каталоги копируемой базы данных.
mysqlhotcopy db_name [/path/to/new_directory] mysqlhotcopy db_name_1 ... db_name_n /path/to/new_directory mysqlhotcopy db_name./regex/
Утилита mysqlhotcopy поддерживает следующие опции:
-u, -user=#
Имя пользователя для входа в базу данных.
-p, -password=#
Используемый пароль при подсоединении к серверу.
-P, -port=#
Номер порта, используемого для подсоединения к локальному серверу.
-S, -socket=#
Номер сокета, используемого для подсоединения к локальному серверу.
-keepold
Не удалять предыдущий результат (только что переименованный) после выполнения команды.
-q, -quiet
Выводить только сообщения об ошибках.
-debug
Разрешить отладку.
-n, -dryrun
Сообщать о действиях без их выполнения.
-regexp=#
Копировать все базы данных с именами, встречающимися в функции
-checkpoint=#
Внести проверочную запись в предусмотренную таблицу базы данных.
-flushlog
Записать на диск данные журналов из буфера, как только все таблицы заблокируются.
-tmpdir=#
Временная директория (вместо /tmp ).
А также некоторые другие. Более полное описание данного сценария можно посмотреть в документации по языку программирования Perl.
Сценарий mysqlhotcopy берет информацию для групп [client] и [mysqlhotcopy] из файлов опций.
Для выполнения программы mysqlhotcopy необходимы доступ для записи в директорию, куда будет помещена копия, и привилегия выполнения команды SELECT для копируемых таблиц и команды для MySQL-сервера (чтобы выполнить FLUSH TABLES ).
Утилита mysqlimport обеспечивает интерфейс командной строки для SQL-оператора LOAD DATA INFILE. Большинство параметров mysqlimport полностью соответствует аналогичным параметрам для оператора LOAD DATA INFILE.
Утилита mysqlimport вызывается следующим образом:
shell> mysqlimport [параметры] database textfile1 [textfile2 ...]
Для каждого текстового файла, указанного в командной строке, mysqlimport удаляет расширение в каждом имени файла и использует его, чтобы определить, в какую таблицу занести содержимое. Например, файлы с именами patient.txt, patient.text и patient должны быть все занесены в таблицу с именем patient.
Утилита mysqlimport поддерживает следующие опции:
-c, -columns=...
Эта опция принимает в качестве аргумента список разделенных запятыми имен полей. Данный список полей используется для создания соответствующей команды LOAD DATA INFILE, которая затем посылается в MySQL.
-C, -compress
Использовать компрессию в связи между клиентом и сервером, если они оба поддерживают сжатие.
-#, -debug[=option_string]
Отслеживать прохождение программы (для отладки).
-d, -delete
Удалить данные из таблицы перед импортированием текстового файла.
-f, -force
Игнорировать ошибки. Например, если таблица для текстового файла не существует, продолжать обработку остающихся файлов. Без параметра -force утилита mysqlimport прекращает работу при отсутствии таблицы.
-h host_name, -host=host_name
Импортировать данные в MySQL-сервер на указанном хосте. Значение хоста по умолчанию — localhost.
-l, -lock-tables
Заблокировать все таблицы для записи перед обработкой любых текстовых файлов. Это обеспечивает синхронизацию всех таблиц на сервере.
-L, -local
Читать входящие файлы из клиента. По умолчанию предполагается, что текстовые файлы расположены на сервере при подсоединении к localhost (значение хоста по умолчанию).
-pyour_pass, -password[=your_pass]
Используемый пароль при подключении к серверу. Если аргумент =your_pass не введен, mysqlimport предложит ввести пароль.
-P port_num, -port=port_num
Номер порта TCP/IP, используемого для подсоединения к хосту.
-r, -replace
Опции -replace и -ignore управляют обработкой поступающих на вход записей, которые дублируют имеющиеся записи по значениям уникальных ключей. Если задано значение -replace, новые строки заменяют существующие с тем же самым значением уникального ключа. Если задано значение -ignore, входные строки, которые дублируют существующую строку по значению уникального ключа, пропускаются. Если же ни одна из опций не задана, то при обнаружении ключа-дубликата возникает ошибка и остаток текстового файла игнорируется.
-s, -silent
Режим молчания. Выводить только сообщения об ошибках.
-u user_name, -user=user_name
Имя пользователя MySQL-сервера, используемое при подсоединении к серверу. Значением по умолчанию является имя для входа в Unix.
Утилита mysqlshow позволяет кратко ознакомиться с существующими базами данных, их таблицами и столбцами таблиц.
Аналогичную информацию можно получить с помощью программы mysql, используя команду SHOW.
Утилита mysqlshow вызывается следующим образом:
shell> mysqlshow [ПАРАМЕТРЫ] [database [table [column]]]
Следует отметить, что в более новых версиях MySQL пользователь может просмотреть только те базы/таблицы/столбцы, для которых у него имеются соответствующие привилегии.
Если последний аргумент содержит в себе шаблонные символы ( *, ?, % или _ ) процессора или SQL, то будут представлены только данные, совпадающие с шаблоном. Если имя базы данных содержит подчеркивание, то оно должно быть экранировано обратным слешем (некоторые оболочки в Unix востребуют два обратных слеша) для того, чтобы получить корректные имена. '*' конвертируются в '%' и '?' - в '_'.
Это может вызвать путаницу при попытке просмотреть столбцы таблицы с символом _, так как в таком случае mysqlshow покажет только имена таблиц, совпадающие с шаблоном. Ситуацию можно легко исправить добавлением дополнительного символа % в конец командной строки (как отдельного аргумента).
Для большинства системных ошибок, помимо внутреннего текстового сообщения MySQL, можно также выводить номер кода системной ошибки в одном из следующих стилей: message ... (errno: #) или message ... (Errcode: #).
Выяснить, что данный код ошибки означает, можно либо путем изучения документации на данную систему, либо воспользовавшись возможностями утилиты perror.
perror выводит описание кода системной ошибки или код ошибки обработчика таблиц .
perror вызывается следующим образом:
shell> perror [ПАРАМЕТРЫ] [ERRORCODE [ERRORCODE...]]
Пример:
shell> perror 13 64 Error code 13: Доступ запрещен Error code 64: Компьютер не находится в сети
Следует учитывать, что сообщения об ошибках в большинстве своем являются системно-зависимыми!
Обычно клиент mysql используется в интерактивном режиме, например, следующим образом:
shell> mysql database
Однако вполне можно поместить SQL команды в текстовый файл и указать mysql считывать входные данные из этого файла. Для этого необходимо создать текстовый файл text_file, содержащий команды, которые предстоит выполнить. Затем запускаем mysql как показано ниже:
shell> mysql database < text_file
Можно также запустить текстовый файл с командой USE db_name. В этом случае указывать имя базы данных в командной строке не обязательно:
shell> mysql < text_file
Если программа mysql уже работает, можно запустить файл с SQL-сценарием, используя команду source:
mysql> source filename;
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.