MySQL

:: DEVELOPER ZONE

Login / Register

  • MySQL.com
  • Developer Zone
  • Partners
  • Online Shop
  • Downloads
  • Documentation
  • Forums
  • Lists
  • Bugs
  • Events
  • User Groups
  • Guilds
  • Blogs
  • Support
  • Resources
  • Books
  • FAQ

Справочное руководство по MySQL 4.0. :: 4 Администрирование баз данных :: 4.4 Предотвращение катастроф и восстановление :: 4.4.6 Использование myisamchk для профилактики таблиц и послеаварийного :: 4.4.6.1 Синтаксис запуска myisamchk

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


  • Справочное руководство по MySQL 4.0.

  • 4.4.6 Использование myisamchk для профилактики таблиц и послеаварийного
  • 4.4.6.1 Синтаксис запуска myisamchk
  • 4.4.6.2 Общие опции для myisamchk
  • 4.4.6.3 Проверочные опции для myisamchk
  • 4.4.6.4 Опции исправления для myisamchk
  • 4.4.6.5 Другие опции для myisamchk
  • 4.4.6.6 Использование памяти утилитой myisamchk
  • 4.4.6.7 Использование myisamchk для послеаварийного восстановления
  • 4.4.6.8 Как проверять таблицы на ошибки
  • 4.4.6.9 Как ремонтировать таблицы
  • 4.4.6.10 Оптимизация таблиц

Get the MySQL Language Reference and MySQL Administrator's Guide from MySQL Press!


Additional languages

  • German


Learn about new MySQL releases, technical articles, events and more.

Subscribe to the monthly MySQL Newsletter!


Previous / Next / Up / Table of Contents

4.4.6.1. Синтаксис запуска myisamchk

myisamchk запускается следующим образом:

shell> myisamchk [options] tbl_name

Опции options определяют, что должна сделать myisamchk. В данном разделе дается описание этих опций (список опций можно также получить, запустив myisamchk --help). Если опции не указаны, myisamchk просто проверяет таблицу. Чтобы получить дополнительную информацию или указать myisamchk выполнить корректирующие действия, надо задать опции, как это описано в этом и в следующих разделах.

tbl_name - это таблица базы данных, которую нужно проверить/исправить. Если myisamchk запускается не из каталога базы данных, то следует задать путь к файлу, поскольку myisamchk не имеет представления о том, где искать базу данных. В действительности для myisamchk не важно, где находятся рабочие файлы - в каталоге базы данных или нет; можно скопировать файлы, относящиеся к базе данных, в другое место и выполнить операции восстановления над ними там.

При желании в командной строке myisamchk можно перечислить имена нескольких таблиц. В качестве имени можно также указать имя индексного файла (с суффиксом .MYI), что позволит задавать все таблицы в каталоге при помощи шаблона *.MYI. Например, находясь в каталоге базы данных, можно проверить все таблицы этого каталога следующим образом:

shell> myisamchk *.MYI

Если каталог базы данных не является текущим, то все таблицы каталога можно проверить, указав к нему путь:

shell> myisamchk /path/to/database_dir/*.MYI

Можно даже проверить все таблицы во всех базах данных, если задать шаблон вместе с путем к каталогу данных MySQL:

shell> myisamchk /path/to/datadir/*/*.MYI

Быстро проверять все таблицы рекомендуется следующим образом:

myisamchk --silent --fast /path/to/datadir/*/*.MYI
isamchk --silent /path/to/datadir/*/*.ISM

Если необходимо проверить все таблицы и исправить все поврежденные из них, можно использовать следующую строку:

myisamchk --silent --force --fast --update-state -O key_buffer=64M \
    -O sort_buffer=64M -O read_buffer=1M -O write_buffer=1M \
    /path/to/datadir/*/*.MYI
isamchk --silent --force -O key_buffer=64M -O sort_buffer=64M \
  -O read_buffer=1M -O write_buffer=1M /path/to/datadir/*/*.ISM

Эти команды предполагают, что имеется более чем 64 Mб свободного пространства.

Следует отметить, что если выдается ошибка, подобная следующей:

myisamchk: warning: 1 clients is using or hasn't closed the table properly

то это означает, что делается попытка проверить таблицу, обновленную другой программой (такой как mysqld), которая еще не закрыла файл или чье выполнение было прервано без возможности корректно закрыть файл.

Если mysqld запущен, то необходимо принудительно вызвать синхронизацию/закрытие всех таблиц с помощью FLUSH TABLES и обеспечить, чтобы никто не использовал таблиц, пока выполняется myisamchk. В версии MySQL 3.23 самый простой способ избежать этой проблемы заключается в применении для проверки таблиц команды CHECK TABLE вместо myisamchk.


This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.

Top / Previous / Next / Up / Table of Contents

© 1995-2005 MySQL AB. All rights reserved.

  • About MySQL
  • Careers
  • Site Map
  • Contact Us
  • Legal
  • Privacy Policy
  • Trademark Info
  • No Software Patents!