sql >> Database teknologi >  >> RDS >> Mysql

Python mister forbindelsen til MySQL-databasen efter cirka et døgn

Jeg har det til at virke nu. Brug af poolede forbindelser lod til at løse problemet for mig.

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

Jeg kalder connection() før hver forespørgselsfunktion, og luk derefter markøren og forbindelsen, før du vender tilbage. Ser ud til at virke. Er dog stadig åben for en bedre løsning.

Rediger

Jeg har siden fundet en bedre løsning. (Jeg løb stadig nogle gange ind i problemer med de samlede forbindelser). Der er faktisk et dedikeret bibliotek til Flask til at håndtere mysql-forbindelser, hvilket næsten er en drop-in-erstatning.

Fra bash:pip install Flask-MySQL

Tilføj MYSQL_DATABASE_HOST , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB til din Flask-konfiguration. Derefter i hoved Python-filen, der indeholder dit Flask App-objekt:

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

Og for at få en forbindelse:mysql.get_db().cursor()

Al anden syntaks er den samme, og jeg har ikke haft nogen problemer siden. Har brugt denne løsning i lang tid nu.




  1. Python/Django MySQL Datetime-håndtering og tidszone

  2. Flytning af en MariaDB-database til krypterede og ukrypterede stater

  3. Beregn procenter fra SUM() i den samme SELECT sql-forespørgsel

  4. Løndatamodel