Назад | Перейти на главную страницу

Регистрирует ли MySQL успешные или предпринятые запросы?

Я пытаюсь отследить случайную ошибку в веб-приложении. Иногда запрос завершается нормально; иногда зависает и никогда не завершается.

Я вижу, что у Apache теперь есть несколько запросов, перечисленных на странице состояния сервера как «отправка ответа», и это не меняется. Я тестирую на localhost, так что их больше одного не должно быть.

Из любопытства я настроил MySQL на регистрацию всех запросов, и я tail -fзагрузите файл журнала.

Когда все идет хорошо, я вижу такую ​​картину:

20 Connect root@localhost on dbname
20 Query (query #1)
20 Query (query #2)
(etc)
20 Quit
21 Connect (etc)

Когда он зависает, я вижу такую ​​картину:

22 Connect root@localhost on dbname
22 Query (query #1)
//nothing happens, so I try the post again
23 Connect root@localhost on dbname
23 Query (query #1)
//nothing happens; try again
24 Connect (etc)

Вот мой вопрос: ведение журнала MySQL попытался запросы, или успешный запросы? Другими словами, если последняя строка, которую я вижу, это запрос №1, означает ли это, что запрос №1 или запрос №2 зависает?

Я предполагаю, что проблема заключается в том, чего я не вижу, потому что последний, который я вижу, выглядит нормально, но, возможно, тот, который я не вижу, слишком запутан для обработки MySQL. Мысли?

Запросы регистрируются по мере их получения, что не обязательно соответствует порядку их выполнения. Значит, второй запрос никогда не приходит.

Возможно, немного поиграйте с медленным запросом и / или ведением журнала ошибок (см. Главу 5.2 руководства), чтобы посмотреть, будет ли там записан ваш первый запрос. Если нет, скорее всего, он обрабатывается нормально, и проблема в вашем приложении.