sql >> Databáze >  >> RDS >> Mysql

Python ztratí připojení k databázi MySQL asi po dni

Teď mi to funguje. Zdálo se, že problém vyřeší použití sdružených připojení.

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

Volám connection() před každou funkcí dotazu a před návratem zavřete kurzor a připojení. Zdá se, že to funguje. Stále však otevřeno lepšímu řešení.

Upravit

Od té doby jsem našel lepší řešení. (Stále jsem občas narážel na problémy se sdruženými připojeními). Ve skutečnosti existuje vyhrazená knihovna pro Flask, která zvládá připojení mysql, což je téměř náhrada typu drop-in.

Z bash:pip install Flask-MySQL

Přidejte MYSQL_DATABASE_HOST , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB do vaší konfigurace Flask. Poté v hlavním souboru Python obsahujícím váš objekt Flask App:

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

A pro získání připojení:mysql.get_db().cursor()

Všechna ostatní syntaxe je stejná a od té doby jsem neměl žádné problémy. Toto řešení používám již dlouhou dobu.




  1. Co je @@MAX_PRECISION na serveru SQL Server?

  2. ActiveRecord::ConnectionTimeoutError:nepodařilo se získat připojení k databázi během 5 000 sekund (čekalo se 5 000 sekund)

  3. Je MySQL Connector/JDBC vlákno bezpečné?

  4. Kdy se doporučuje používat MySQL BLOB?