Es sieht so aus, als ob Ihre MySQL-Verbindung nach einer langen Zeit der Inaktivität abläuft. Ich wette, es wird nicht passieren, wenn Sie Ihre Datenbank ständig mit vorhandenen Einstellungen abfragen. Es gibt einige Einstellungen sowohl auf MySQL- als auch auf SQL-Seite, die dieses Problem lösen sollten:
-
Überprüfen Sie den
pool_recycle
Ihrer SQLa-Engine Wert, versuchen Sie einen anderen / kleineren Wert, z. 1800 (Sekunden). Wenn Sie DB-Einstellungen aus einer Datei lesen, setzen Sie sie aufpool_recycle:1800
Andernfalls geben Sie es während der Engine-Init an, z. B.
from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
-
überprüfen / ändern Sie Ihr
wait_timeout
MySQL-Variable, siehe https://dev .mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout Dies ist die Anzahl der Sekunden, die der Server auf Aktivität auf einer nicht interaktiven Verbindung wartet, bevor er sie schließt. z. B.Zeige globale Variablen wie 'wait_timeout';
Finden Sie eine Kombination, die für Ihre Umgebung geeignet ist.