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

SQLAlchemy/MySQL Utracono połączenie z serwerem MySQL podczas zapytania

wygląda na to, że Twoje połączenie MySQL wygasa po długim okresie braku aktywności, założę się, że tak się nie stanie, jeśli ciągle wysyłasz zapytania do bazy danych z istniejącymi ustawieniami. Istnieje kilka ustawień po stronie MySQL i sql, które powinny rozwiązać ten problem:

  1. sprawdź pool_recycle swojego silnika SQLa wartość, wypróbuj inną / mniejszą wartość, np. 1800 (sek.). Jeśli czytasz ustawienia bazy danych z pliku, ustaw go jako

    pool_recycle:1800

w przeciwnym razie określ go podczas inicjowania silnika, np.

from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
  1. sprawdź / zmodyfikuj swój wait_timeout Zmienna MySQL, zobacz https://dev .mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_wait_timeout czyli liczba sekund, przez które serwer czeka na aktywność w połączeniu nieinteraktywnym przed jego zamknięciem. np.

    pokaż zmienne globalne, takie jak „wait_timeout”;

znajdź kombinację, która działa w Twoim środowisku.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak używać instrukcji CASE w MySQL?

  2. MySQLdb Python wstawia %d i %s

  3. MySQL a JSON — dlaczego?

  4. Nie można załadować pliku lub zestawu 'MySql.Data, wersja=6.2.2.0

  5. Obiekt klasy Baza danych nie mógł zostać przekonwertowany na ciąg