изглежда, че връзката ви с MySQL изтича след дълъг период на бездействие, обзалагам се, че няма да се случи, ако постоянно питате вашата DB със съществуващи настройки. Има няколко настройки от двете страни на MySQL и sql, които трябва да разрешат този проблем:
-
проверете
pool_recycle
на вашата SQLa машина стойност, опитайте различна / по-малка стойност, напр. 1800 (сек.). Ако четете настройките на DB от файл, задайте го катоpool_recycle:1800
в противен случай го посочете по време на стартиране на двигателя, напр.
from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
-
проверете / променете вашия
wait_timeout
MySQL променлива, вижте https://dev .mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout което е броят секунди, които сървърът изчаква за активност на неинтерактивна връзка, преди да я затвори. напр.показване на глобални променливи като 'wait_timeout';
намерете комбинация, която работи за вашата среда.