Spec-Zone .ru
спецификации, руководства, описания, API
|
Отметьте, что прежде, чем запустить mysqld с общего включенного журнала запросов, следует проверить все свои таблицы с myisamchk. См. Главу 5, MySQL Server Administration.
Если mysqld умирает или зависает, следует запустить mysqld с общего включенного журнала запросов. См. Раздел 5.2.3, "Общий Журнал запросов". Когда mysqld умирает снова, можно исследовать конец файла журнала для запроса, который уничтожил mysqld.
Если Вы используете значение по умолчанию общий файл журнала запросов, журнал сохранен в каталоге базы данных
как
В большинстве случаев
это - последний запрос в файле журнала, который уничтожил mysqld, но если возможный следует проверить это,
перезапуская mysqld и выполняя найденный запрос от mysql инструментов командной строки. Если это работает,
следует также протестировать все сложные запросы, которые не завершались. host_name
.log
Можно также попробовать команду EXPLAIN
на
всех SELECT
операторы, который занимает много времени, чтобы гарантировать, что mysqld
использует, индексируют должным образом. См. Раздел 13.8.2,"EXPLAIN
Синтаксис".
Можно найти запросы, которые занимают много времени, чтобы выполниться, запускаясь mysqld с медленным включенным журналом запросов. См. Раздел 5.2.5, "Медленный Журнал запросов".
Если Вы находите текст mysqld restarted
в файле журнала ошибок (обычно называемый
hostname.err
) Вы, вероятно, нашли запрос, который заставляет mysqld перестать работать. Если это происходит, следует
проверить все свои таблицы с myisamchk (см. Главу
5, MySQL Server Administration), и протестируйте запросы в файлах журнала MySQL, чтобы видеть,
перестал ли каждый работать. Если Вы находите такой запрос, попытайтесь сначала обновить до новейшей версии
MySQL. Если это не помогает, и ничего невозможно найти в mysql
почтовый архив,
следует сообщить об ошибке к списку рассылки MySQL. Списки рассылки описываются в
Если Вы запустили mysqld с --myisam-recover-options
, MySQL автоматически проверяет и пытается восстановить
MyISAM
таблицы, если они отмечаются как 'не закрытый должным образом' или
'отказали'. Если это происходит, MySQL пишет запись в hostname.err
файл 'Warning: Checking table ...'
который сопровождается Warning:
Repairing table
если таблица должна быть восстановлена. Если Вы получаете много этих ошибок без mysqld,
умиравшего неожиданно как раз перед, то что-то является неправильным и должно быть исследовано далее. См. Раздел
5.1.3, "Опции Команды Сервера".
В MySQL 5.7, когда сервер обнаруживает MyISAM
табличное повреждение, это пишет
дополнительную информацию в журнал ошибок, такой как имя и номер строки исходного файла, и список потоков,
получающих доступ к таблице. Пример: Got an error from thread_id=1, mi_dynrec.c:368
.
Это - полезная информация, чтобы включать в отчеты об ошибках.
Это не хороший знак, если бы mysqld действительно неожиданно умер, но в этом случае, то
недопустимо заняться расследованиями Checking table...
сообщения, но вместо этого
пытаются узнать, почему mysqld умер.