Ошибка Pylons – «Сервер MySQL ушел»

[Надеюсь, это не слишком неясно … Я спрошу группу новостей, если никто не знает здесь]

Я использую Pylons (фреймворк python), чтобы служить простому веб-приложению, но, похоже, время от времени умирает, причем это в журнале ошибок: (2006, 'MySQL server has gone away')

Я немного проверил и увидел, что это связано с тем, что соединения с MySQL не обновлялись. Это не должно быть проблемой, потому что sqlalchemy.pool_recycle в файле конфигурации должен автоматически поддерживать его. По умолчанию было 3600 , но я набрал его до 1800 из-за этой проблемы. Это помогло немного, но 3600 должно быть в порядке в соответствии с документами. Ошибки все еще происходят полу-регулярно. Я не хочу слишком сильно его понижать, а DOS – моя собственная база данных :).

Может быть, что-то в моей конфигурации MySQL тупой? Не уверен, где искать.

Другие релевантные детали:

  Python 2.5 Pylons: 0.9.6.2 (w/ sql_alchemy) MySQL: 5.0.51 

2 Solutions collect form web for “Ошибка Pylons – «Сервер MySQL ушел»”

Думаю, я это исправил. Оказывается, у меня была простая ошибка конфигурации. Мой файл ini читал:

 sqlalchemy.default.url = [connection string here] sqlalchemy.pool_recycle = 1800 

Проблема в том, что мой файл environment.py заявил, что движок будет отображать только ключи с префиксом: pool_recycle поэтому pool_recycle был проигнорирован.

Решение состоит в том, чтобы просто изменить вторую строку в ini:

 sqlalchemy.default.pool_recycle = 1800 

Возможно, вы захотите проверить переменные времени ожидания MySQL:

 show variables like '%timeout%'; 

Вероятно, вас интересует wait_timeout (менее вероятно, но возможно: interactive_timeout ). В Debian и Ubuntu значения по умолчанию – 28800 (MySQL убивает соединения через 8 часов), но, возможно, по умолчанию для вашей платформы разные, или тот, кто администрирует сервер, настроил что-то по-другому.

AFAICT, pool_recycle фактически не поддерживает связь, он истекает сам по себе, прежде чем MySQL их убьет. Я не знаком с пилонами, но если вы вызываете соединения с перерывами, сделайте SELECT 1; это вариант, который будет поддерживать их при стоимости, в основном, без нагрузки на сервер и минимального сетевого трафика. Одна заключительная мысль: вы каким-то образом можете использовать соединение, которое полагает, что оно истекло?

  • Явное отключение кэша запросов MySQL в некоторых частях программы
  • Как разрешить django admin установить поле в NULL?
  • несогласованный отступ с Python после раскола
  • Как работает / исполняется статут RENAME TABLE в MySQL?
  • Обновление базы данных с несколькими SQL-данными
  • Обновление с Django 1.6 (с юга) до 1.8 не изменяет «last_login» в пользовательской таблице
  • Временное напоминание электронной почты в python
  • django.core.exceptions.ImproperlyConfigured: Ошибка при загрузке модуля MySQLdb: нет модуля с именем MySQLdb
  •  
    Interesting Posts for Van-Lav

    Наследование на основе Python – объект не имеет ошибки атрибута

    Как полностью удалить пустое пространство вокруг диаграммы рассеяния?

    2D-массив numpy не дает ошибки при индексировании со строками, содержащими цифры

    Как изменить шрифт и размер кнопок и фрейма в tkinter с помощью python?

    Как упаковать файлы python, которые я использую, чтобы я мог распространять их с моим приложением и иметь как можно меньше зависимостей

    Python – Как запустить файл .py?

    Почему pandas.to_datetime медленный для нестандартного формата времени, такого как '2014/12/31'

    Какие библиотеки python могут указать мне приблизительное местоположение и часовой пояс с учетом IP-адреса?

    python lxml на движке приложения?

    Считыватель CSV и итерация Python

    Python Config.cfg – почему не собирается Python, используя realpath & __file__?

    Какое максимальное количество повторений допускается в регулярном выражении Python?

    Как узнать, использует ли boto SSLv3 или TLS?

    Как найти реальный домашний каталог пользователя с помощью python?

    Как изменить размер шрифта оси в графике matplotlib при рендеринге с использованием Latex?

    Python - лучший язык программирования в мире.