Mysql
 sql >> Base de données >  >> RDS >> Mysql

SQLAlchemy/MySQL Connexion perdue au serveur MySQL lors de la requête

il semble que votre connexion MySQL expire après une longue période d'inactivité, je parie que cela n'arrivera pas si vous interrogez constamment votre base de données avec les paramètres existants. Il existe quelques paramètres côté MySQL et SQL qui devraient résoudre ce problème :

  1. vérifiez le pool_recycle de votre moteur SQLa valeur, essayez une valeur différente / plus petite, par ex. 1800 (secondes). Si vous lisez les paramètres de la base de données à partir du fichier, définissez-le comme

    pool_recycle :1800

sinon spécifiez-le lors de l'initialisation du moteur, par exemple

from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
  1. vérifier / modifier votre wait_timeout Variable MySQL, voir https://dev .mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout qui est le nombre de secondes pendant lesquelles le serveur attend une activité sur une connexion non interactive avant de la fermer. ex.

    afficher les variables globales comme 'wait_timeout' ;

trouvez une combinaison qui fonctionne pour votre environnement.