Начиная с версии MySQL 3.23.38 можно применять новый инструмент для
проверки и восстановления MyISAM-таблиц. Отличие mysqlcheck от myisamchk
состоит в том, что утилита mysqlcheck должна использоваться при работающем
сервере mysqld, в то время как myisamchk - при остановленном. Преимущество
же заключается в том, что теперь не нужно останавливать сервер для
проверки или восстановления таблиц.
Утилита mysqlcheck использует соответствующие команды MySQL-сервера CHECK,
REPAIR, ANALYZE и OPTIMIZE удобным для пользователя образом.
Существует три альтернативных способа запуска mysqlcheck:
shell> mysqlcheck [OPTIONS] database [tables] shell> mysqlcheck [OPTIONS] --databases DB1 [DB2 DB3...] shell> mysqlcheck [OPTIONS] --all-databases
Таким образом, утилита может использоваться подобно mysqldump по отношению
к выбранным базам данных и таблицам.
В сравнении с другими клиентами утилита mysqlcheck имеет следующую
отличительную особенность: установка поведения по умолчанию, (проверка
таблиц, -с), может быть изменена путем переименования исполняемого файла
утилиты. Итак, чтобы получить инструмент, восстанавливающий таблицы по
умолчанию, просто скопируйте mysqlcheck с новым именем, mysqlrepair, или,
наоборот, сделайте символьную ссылку на mysqlrepair и обозначьте ее как
mysqlrepair. Если теперь запустить mysqlrepair, то утилита по умолчанию
будет восстанавливать таблицы.
Для изменения поведения mysqlcheck по умолчанию можно использовать
следующие обозначения:
mysqlrepair: Значение по умолчанию будет -r mysqlanalyze: Значение по умолчанию будет -a mysqloptimize: Значение по умолчанию будет -o
Ниже приведены возможные опции для mysqlcheck. Какие из них поддерживает
ваша версия, можно проверить с помощью команды mysqlcheck --help.
-
-A, --all-databasesПроверить все базы данных. Аналогична опции
--databases, если указать все базы данных. -
-1, --all-in-1Вместо выполнения запросов для каждой таблицы в отдельности выполнить все запросы в одном отдельно для каждой таблицы. Имена таблиц будут представлены в виде списка имен, разделенных запятой.
-
-a, --analyzeАнализировать данные таблицы.
-
--auto-repairЕсли проверенная таблица повреждена, автоматически восстановить ее. Исправления будут произведены после проверки всех таблиц, если были обнаружены повреждения.
-
-#, --debug=...Выводит информацию журнала отладки. Часто используется следующий набор параметров: 'd:t:o,filename'
-
--character-sets-dir=...Директория, где находятся установки символов.
-
-c, --checkПроверить таблицу на наличие ошибок.
-
-C, --check-only-changedПроверить только таблицы, измененные со времени последней проверки или некорректно закрытые.
-
--compressИспользовать сжатие данных в протоколе сервер/клиент.
-
-?, --helpВывести данную вспомогательную информацию и выйти из программы.
-
-B, --databasesПроверить несколько баз данных. Обратите внимание на разницу в использовании: в этом случае таблицы не указываются. Все имена аргументов рассматриваются как имена баз данных.
-
--default-character-set=...Установить набор символов по умолчанию.
-
-F, --fastПроверить только базы данных, которые не были закрыты должным образом.
-
-f, --forceПродолжать даже при получении ошибки SQL.
-
-e, --extendedПри использовании данного параметра совместно с
CHECK TABLEможно быть на 100 процентов быть уверенным в целостности таблицы, хотя это и займет много времени. Если же использовать этот параметр сREPAIR TABLE, запустится расширенное восстановление таблицы, которое может потребовать не только длительного времени выполнения, но и привнесет также массу ненужных строк! -
-h, --host=...Подключиться к хосту.
-
-m, --medium-checkБыстрее, чем
--extended-check, но находит только 99,99 процентов всех ошибок. Для большинства случаев этот вариант вполне подходит. -
-o, --optimizeОптимизировать таблицу.
-
-p, --password[=...]Используемый пароль при подключении к серверу. Если пароль не указан, у пользователя запрашивается пароль с терминала.
-
-P, --port=...Номер порта, используемого для подключения по TCP/IP.
-
--protocol=(TCP | SOCKET | PIPE | MEMORY)Для указания протокола соединения, который надлежит использовать. Новшество в MySQL 4.1.0.
-
-q, --quickПри использовании данной опции совместно с
CHECK TABLEпредотвращается сканирование строк для корректировки неправильных связей. Это наиболее быстрый метод проверки. Если же использовать этот параметр сREPAIR TABLE, программа попытается восстановить только систему индексов. Это наиболее быстрый метод восстановления таблицы. -
-r, --repairМожет исправить почти все, за исключением уникальных ключей, имеющих дубликаты.
-
-s, --silentВыводить только сообщения об ошибках.
-
-S, --socket=...Файл сокета, используемый для подсоединения.
-
--tablesПерекрывает опцию
--databases(-B). -
-u, --user=#Имя пользователя MySQL, если этот пользователь в данное время не является активным.
-
-v, --verboseВывести информацию о различных этапах.
-
-V, --versionВывести информацию о версии и выйти из программы.