5.8.1.7 Создание тестового случая при повреждении таблицы
Данная процедура применяется к таблицам MyISAM. Информацию о шагах, которые необходимо предпринять при обнаружении повреждения таблиц, см. в разделе 1.5, «Как сообщать об ошибках или проблемах».
Если у вас обнаружены повреждённые таблицы MyISAM или если mysqld всегда завершается ошибкой после некоторых операторов обновления, вы можете проверить воспроизводимость проблемы, выполнив следующие действия:
Остановите демона MySQL с помощью mysqladmin shutdown.
Создайте резервную копию таблиц, чтобы обезопасить себя от маловероятного случая, что исправление приведёт к нежелательным последствиям.
Проверьте все таблицы с помощью myisamchk -s database/*.MYI. Исправьте любые повреждённые таблицы с помощью myisamchk -r database/
table.MYI.Создайте вторую резервную копию таблиц.
Удалите (или переместите) все старые файлы журналов из каталога данных MySQL, если нужно больше места.
Запустите mysqld с включённым бинарным журналом. Если вы хотите найти оператор, который приводит к аварийному завершению mysqld, вы также должны запустить сервер с включённым общим журналом запросов. См. раздел 5.4.3, «Общий журнал запросов» и раздел 5.4.4, «Бинарный журнал».
После возникновения проблемы с таблицей остановите сервер mysqld.
Восстановите резервную копию.
Перезапустите сервер mysqld без включённого бинарного журнала.
Запустите операторы заново с помощью mysqlbinlog binary-log-file | mysql. Бинарный журнал сохраняется в каталоге базы данных MySQL с именем
hostname-bin..NNNNNNЕсли таблицы снова повреждаются или mysqld завершается ошибкой с помощью вышеуказанной команды, вы нашли воспроизводимую ошибку. Отправьте таблицы и бинарный журнал в нашу базу данных ошибок, используя инструкции, приведенные в разделе 1.5, «Как сообщать об ошибках или проблемах». Если вы являетесь клиентом поддержки, вы можете использовать Центр поддержки клиентов MySQL (https://www.mysql.com/support/), чтобы сообщить команде MySQL о проблеме и как можно скорее исправить её.
© 2025 Oracle
Licensed under the GPLv2 License.