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. :: E Перенос на другие системы :: E.1 Отладка сервера MySQL :: E.1.5 Использование журналов для определения причин ошибок в mysqld

  • Overview
  • MySQL Reference Manual
  • MaxDB Documentation
  • Connectors

Search the MySQL manual:


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

  • E.1 Отладка сервера MySQL
  • E.1.1 Компиляция MySQL для отладки
  • E.1.2 Создание трассировочных файлов
  • E.1.3 Отладка mysqld при помощи gdb
  • E.1.4 Использование трассировки стека
  • E.1.5 Использование журналов для определения причин ошибок в mysqld
  • E.1.6 Создание контрольного примера при повреждении таблиц

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

E.1.5. Использование журналов для определения причин ошибок в mysqld

Обратите внимание: перед запуском mysqld с --log необходимо проверить все используемые таблицы с помощью myisamchk (see Глава 4, Администрирование баз данных).

Если демон mysqld умрет или зависнет, следует запустить mysqld с опцией --log. Если аварийное завершение mysqld снова повторится, то можно исследовать часть журнала, относящуюся к запросу, убившему mysqld.

При использовании опции --log без имени файла данный журнал хранится в каталоге базе данных как `hostname`.log. В большинстве случаев именно последний запрос в системном журнале приводит к смерти mysqld, но при возможности лучше в этом убедиться: перезапустите mysqld и выполните найденный запрос из командной строки mysql. Если запрос выполняется, то следует протестировать все сложные запросы, которые не завершились.

Можно также попробовать выполнить команду EXPLAIN для всех выражений SELECT, которые занимают длительное время, чтобы убедиться, что mysqld правильно использует индексы. See Раздел 5.2.1, «Синтаксис оператора EXPLAIN (получение информации о SELECT)».

Запросы, требующие слишком длительного времени для выполнения, можно выявить, запустив mysqld с параметром --log-slow-queries. See Раздел 4.9.5, «Журнал медленных запросов».

Если в журнале ошибок (обычно он имеет имя `hostname`.err) присутствует запись "mysqld restarted", то у вас есть шанс найти запрос, вызывающий смерть mysqld. В этом случае необходимо проверить все таблицы с помощью команды myisamchk (see Глава 4, Администрирование баз данных) и проанализировать запросы в журналах MySQL, чтобы определить, какой из них не работает. Если такой запрос найден, прежде всего необходимо попытаться сделать апгрейд MySQL до новейшей версии. Если же это не помогает и нет ничего похожего в архиве списка рассылки mysql, пришлите отчет о данном сбое по адресу <mysql@lists.mysql.com>. Ссылки на архивы списка рассылки доступны по адресу http://lists.mysql.com/.

Если демон mysqld был запущен с параметром myisam-recover, то MySQL автоматически проверяет и пытается восстановить таблицы MyISAM (если они отмечены как "таблица не закрыта правильно" или "таблица повреждена"). В этом случае MySQL запишет в файл hostname.err предупреждение: "Warning: Checking table ...", за которым следует "Warning: Repairing table", если данную таблицу следует исправить. Если таких ошибок в журнале много, а mysqld перед этим не умирал со сбоем, то что-то работает неправильно и необходимы дальнейшие исследования. See Раздел 4.1.1, «Параметры командной строки mysqld».

Конечно, неожиданная смерть mysqld - событие малоприятное, но в этом случае следует не изучать сообщения "Checking table...", а попытаться найти причины остановки mysqld.


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