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

Python perd la connexion à la base de données MySQL après environ un jour

Je l'ai travailler maintenant. L'utilisation de connexions groupées a semblé résoudre le problème pour moi.

mysql.connector.connect(
    host='10.0.0.25',
    user='xxxxxxx', 
    passwd='xxxxxxx', 
    database='xxxxxxx',
    pool_name='batman',
    pool_size = 3
)

def connection():
    """Get a connection and a cursor from the pool"""
    db = mysql.connector.connect(pool_name = 'batman')
    return (db, db.cursor())

J'appelle connection() avant chaque fonction de requête, puis fermez le curseur et la connexion avant de revenir. Semble fonctionner. Toujours ouvert à une meilleure solution cependant.

Modifier

J'ai depuis trouvé une meilleure solution. (Je rencontrais encore occasionnellement des problèmes avec les connexions groupées). Il existe en fait une bibliothèque dédiée à Flask pour gérer les connexions mysql, qui est presque un remplacement instantané.

Depuis bash :pip install Flask-MySQL

Ajouter MYSQL_DATABASE_HOST , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB à votre configuration Flask. Puis dans le fichier Python principal contenant votre objet Flask App :

from flaskext.mysql import MySQL
mysql = MySQL()
mysql.init_app(app)

Et pour obtenir une connexion :mysql.get_db().cursor()

Toutes les autres syntaxes sont les mêmes, et je n'ai eu aucun problème depuis. J'utilise cette solution depuis longtemps maintenant.