Mysql
 sql >> Datenbank >  >> RDS >> Mysql

SQLAlchemy/MySQL Verlorene Verbindung zum MySQL-Server während der Abfrage

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:

  1. Ü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 auf

    pool_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)
  1. ü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.