sql >> Base de Datos >  >> RDS >> Mysql

Python pierde la conexión con la base de datos MySQL después de aproximadamente un día

Tengo que trabajar ahora. El uso de conexiones agrupadas pareció solucionar el problema para mí.

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())

Llamo a connection() antes de cada función de consulta y luego cierre el cursor y la conexión antes de regresar. Parece funcionar. Sin embargo, todavía estoy abierto a una mejor solución.

Editar

Desde entonces he encontrado una solución mejor. (Todavía ocasionalmente tenía problemas con las conexiones agrupadas). En realidad, hay una biblioteca dedicada para que Flask maneje las conexiones mysql, que es casi un reemplazo directo.

Desde bash:pip install Flask-MySQL

Añadir MYSQL_DATABASE_HOST , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB a su configuración de Flask. Luego, en el archivo principal de Python que contiene su objeto Flask App:

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

Y para obtener una conexión:mysql.get_db().cursor()

El resto de la sintaxis es la misma y no he tenido ningún problema desde entonces. He estado usando esta solución durante mucho tiempo.