Начиная с версии 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
Вывести информацию о версии и выйти из программы.