"tbl_name.frm" table definition (table) file "tbl_name. MYD " Data File tbl_name. MYI" индексный файл Каждый из этих трёх типов файлов может страдать от различных форм повреждений, но чаще всего проблема возникает в файлах данных и индексных файлах. myisamchk создаёт ". Для работы MYD" (data) он работает путём удаления старого ". MYD и переименовать новый файл в исходное имя, чтобы завершить фазу восстановления. Если использовать --quick, myisamchk не создаёт временного ". MYD", просто предполагаю". Файл MYD" верен и создаёт только новый индексный файл, не касаясь его". MYD", который безопасен, потому что myisamchk автоматически обнаруживает". Файл MYD" повреждён, и в данном случае нужно отказаться от ремонта. Вы также можете дать myisamchk два — быстрых вариантов. В этом случае myisamchk не отказывается от некоторых ошибок (например, повторяющихся клавиш), а пытается изменить ". MYD» для их разрешения. Обычно это полезно только если реализовать обычное исправление слишком малого свободного места на диске, используя два варианта — быстрые варианты. В таком случае стоит хотя бы сделать резервную копию перед запуском myisamchk. 1. Как проверить ошибки в таблице Чтобы проверить таблицу, используйте следующую команду: myisamchk tbl_name Это фиксирует 99,99% всех ошибок. Но не может выяснить, что повреждение связано только с файлами данных (что редко). Если хотите проверить таблицу, обычно стоит запускать myisamchk без этой опции или использовать одну из -s или --беззвучных опций. myisamchk -e tbl_name Он проводит полностью тщательную проверку данных (-e означает «расширенная проверка»). Он проводит проверку чтения по клавишам на каждой строке, чтобы убедиться, что они действительно указывают на правильную строку. Это может занять много времени на большом столе с множеством клавиш. Myisamchk обычно останавливается после того, как находит первую ошибку. Если хотите больше информации, можете добавить опцию --verbose(-v). Это заставляет myisamchk продолжаться до максимума 20 ошибок. В общем употреблении достаточно простого myisamchk (без аргументов, кроме названия таблицы). myisamchk -e -i tbl_name Как и предыдущая команда, но опция -i подсказывает myisamchk распечатать статистику. 2. Как починить стол Симптомом повреждённой таблицы обычно является неожиданный разрыв запроса, и вы можете увидеть, например, следующие ошибки: "tbl_name.frm" заблокирован и не может быть изменен. Не удалось найти файл «tbl_name. MYI"(Errcode :### )。 Получите ошибку ### от процессора таблицы (в данном случае ошибка 135 является исключением). Неожиданный конец файла. Файлы были уничтожены. В таких случаях нужно приготовить стол. Myisamchk обычно обнаруживает и исправляет большинство неисправностей. Процесс ремонта включает до 4 этапов, описанных ниже. Перед началом нужно зарегистрировать права на каталог базы данных и контрольный список, чтобы убедиться, что они читаемы пользователями Unix с mysqld (и вам, так как вам нужен доступ к проверяемому файлу). Если файл отказывается менять, они тоже должны быть записаны вам. Этап 1: Проверьте свой стол Беги myisamchk *. MYI или (myisamchk -e *. MYI, если у тебя будет больше времени). Используйте опцию -s (тишина), чтобы отключить ненужную информацию.
Формат файла, используемый MySQL для хранения данных, был тщательно протестирован, но всегда существуют внешние условия, которые могут привести к повреждению таблиц баз данных: Процесс mysqld убивается при одной записи; Неожиданное отключение компьютера (например, если компьютер теряет питание); аппаратная ошибка. В этой главе описывается, как проверять и обрабатывать повреждения данных в базе данных MySQL. Если ваш стол сильно повреждён, попробуйте выяснить причину! См. G.1 Отладка сервера MySQL. При проведении восстановления после сбоя важно понимать, что каждая таблица в базе данных tbl_name соответствует трём файлам в каталоге базы данных |