Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Python traci połączenie z bazą danych MySQL po około dniu

Teraz to działa. Korzystanie z połączonych połączeń wydawało mi się rozwiązać problem.

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

Dzwonię do connection() przed każdą funkcją zapytania, a następnie zamknij kursor i połączenie przed powrotem. Wydaje się działać. Nadal jednak otwarty na lepsze rozwiązanie.

Edytuj

Od tego czasu znalazłem lepsze rozwiązanie. (Nadal od czasu do czasu napotykałem problemy z połączeniami w puli). W rzeczywistości istnieje dedykowana biblioteka dla Flask do obsługi połączeń mysql, która jest prawie zamiennikiem.

Z bash:pip install Flask-MySQL

Dodaj MYSQL_DATABASE_HOST , MYSQL_DATABASE_USER , MYSQL_DATABASE_PASSWORD , MYSQL_DATABASE_DB do twojej konfiguracji Flask. Następnie w głównym pliku Pythona zawierającym obiekt Flask App:

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

Aby uzyskać połączenie:mysql.get_db().cursor()

Cała inna składnia jest taka sama i od tego czasu nie miałem żadnych problemów. Korzystam z tego rozwiązania od dłuższego czasu.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Klauzula OUTPUT w MySQL

  2. standardowa metoda pobierania powiadomienia z bazy danych o zmianie/wstawieniu

  3. Zapytanie MySQL o minimalnej wartości

  4. Ogranicz dzienny dostęp

  5. jak sprawdzić, czy kolumna jest kluczem podstawowym za pomocą mysqli?