В MySQL имеется несколько журналов, позволяющих узнать, что происходит внутри mysqld :
Журнал | Описание | Журнал ошибок | В нем хранятся ошибки запуска, работы или завершения работы mysqld .
| Журнал isam | В нем хранится информация обо всех изменениях таблиц ISAM . Используется только при отладке кода isam. | Общий журнал запросов | В нем хранится информация об установленных соединениях и выполненных запросах. | Журнал обновлений log | В нем хранятся все команды, меняющие данные; в скором времени выйдет из употребления | Бинарный журнал обновлений | В нем хранятся все меняющие что-либо команды. Используется для репликации | Журнал медленных запросов | В нем хранятся все запросы, на выполнение которых ушло больше времени, чем указано в переменной long_query_time (или запросы, не использовавшие индексов). |
Все файлы журналов хранятся в каталоге с данными mysqld . С помощью команды FLUSH LOGS можно заставить mysqld открыть файлы журналов снова (или - в некоторых случаях - переключиться на новый файл). См. раздел Синтаксис команды FLUSH .
Журнал ошибок
Все ошибки mysqld записывает в stderr , который сценарий safe_mysqld перенаправляет в файл с именем "hostname".err (в Windows mysqld сохраняет его в каталоге "\mysql\data\mysql.err").
В нем содержится информация о запуске и завершении работы mysqld , а также обо всех серьезных ошибках, возникших во время работы. Если произойдет неожиданное аварийное завершение работы, и safe_mysqld придется перезапустить mysqld , safe_mysqld внесет в этот файл соответствующую запись. Кроме того, в этот журнал заносится предупреждение в том случае, если mysqld обнаружит таблицу, нуждающуюся в автоматической проверке или исправлении.
В некоторых ОС в журнал включается распечатка части стека погибшего mysqld . С помощью этой информации можно определить причину сбоя (см. раздел Использование трассировки стека).
Общий журнал запросов
Если вы хотите знать обо всем, что происходит с mysqld , нужно запустить систему с ключом --log[=file] . После этого информация обо всех соединениях и запросах будет записываться в файл журнала (по умолчанию ему дается имя "hostname".log ). Этот журнал может оказаться полезным, если вы подозреваете наличие ошибки в клиентском ПО и хотите выяснить, что, по мнению mysqld , клиент передал базе.
По умолчанию сценарий mysql.server запускает сервер MySQL с ключом -l . Если для начала реальной работы вам понадобится наибольшая производительность, ключ -l можно убрать из сценария mysql.server или заменить его на --log-bin .
Записи в журнал заносятся по мере получения mysqld запросов. Порядок их занесения может отличаться от порядка выполнения команд. В этом и заключается основное отличие данного журнала от журналов обновлений и бинарных журналов, в которые информация заносится по мере выполнения запросов, но до отмены блокировок.
1 2 3
8 8 8
| |