sql >> Database >  >> RDS >> Mysql

Python verliest verbinding met MySQL-database na ongeveer een dag

Ik heb het nu werkend. Het gebruik van gepoolde verbindingen leek het probleem voor mij op te lossen.

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

Ik bel connection() vóór elke zoekfunctie en sluit vervolgens de cursor en verbinding voordat u terugkeert. Lijkt te werken. Sta echter nog steeds open voor een betere oplossing.

Bewerken

Inmiddels heb ik een betere oplossing gevonden. (Ik kwam nog steeds af en toe problemen tegen met de gepoolde verbindingen). Er is eigenlijk een speciale bibliotheek voor Flask om mysql-verbindingen te verwerken, wat bijna een vervanging is.

Van bash:pip install Flask-MySQL

MYSQL_DATABASE_HOST toevoegen , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB naar uw Flask-configuratie. Dan in het hoofd Python-bestand dat je Flask App-object bevat:

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

En om een ​​verbinding te krijgen:mysql.get_db().cursor()

Alle andere syntaxis is hetzelfde en sindsdien heb ik geen problemen meer gehad. Gebruik deze oplossing al heel lang.




  1. OdbcConnection retourneert Chinese karakters als ?

  2. Hoe een MySQL-schema met gegevens exporteren?

  3. SQL-tabel met één kolom, waarbij de kolom een ​​ID is - is dit gek?

  4. mysql select query-optimalisatie en hoe limiet werkt in mysql