(2006, «Сервер MySQL ушел») в WSGI django - PullRequest
7 голосов
/ 06 апреля 2010

У меня нет MySQL с Django под WSGI. Я нашел записи для этой проблемы в stackoverflow, но ничего с Django специально. Google не помогает, за исключением обходных путей (например, время от времени опрашивая сайт или увеличивая время ожидания базы данных). Ничего определенного. Технически, Django и / или MySQLdb (я использую последнюю версию 1.2.3c1) должны попытаться восстановить соединение, если сервер повесил соединение, но этого не происходит. Как я могу решить эту проблему без обходных путей?

Ответы [ 3 ]

3 голосов
/ 10 ноября 2010

show variables like 'wait_timeout';

эта настройка отбросит ошибку "mysql away"
установите очень большое значение, чтобы оно не исчезло.
или просто повторить соединение MySQL после определенного периода

2 голосов
/ 24 сентября 2015

Разработчики Django дали один короткий ответ на все подобные вопросы в https://code.djangoproject.com/ticket/21597#comment:29

  • Разрешение установлено на wontfix

На самом деле это предполагаемое поведение после # 15119. См. Этот билет для обоснования.

Если вы столкнулись с этой проблемой и не хотите понять, что происходит, не открывайте этот билет, просто сделайте следующее:

  • РЕКОМЕНДУЕМОЕ РЕШЕНИЕ: закройте соединение с from django.db import connection; connection.close(), когда вы знаете, что ваша программа будет простаивать в течение длительного времени.

  • CRAPPY SOLUTION: увеличьте wait_timeout, чтобы он превышал максимальное время простоя вашей программы.

В этом контексте время простоя - это время между двумя последовательными запросами к базе данных.

1 голос
/ 14 марта 2012
  • Вы можете создать промежуточное ПО для ping () соединения MySQL (которое восстановит соединение, если истекло время ожидания) перед обработкой представления

  • Вы также можете добавить промежуточное ПО, чтобы перехватить исключение, повторно подключиться и повторить попытку. view (я думаю, что я предпочел бы вышеупомянутое решение как более простое, но оно должно технически работать и быть быстродействующим при условии, что тайм-ауты редки. Это также предполагает, что у неисправного представления нет побочных эффектов, что является желательным свойством, но может быть трудным для выполнения, особенно если вы пишете в файловую систему, а также дБ в вашем представлении.)

...