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

Dlaczego otrzymuję wyjątek serwera MySQL w Django?

Miałem dokładnie ten sam problem co twój. Zaimplementowałem skrypt monitorujący za pomocą biblioteki watchdogs i pod koniec "wait_timeout" został zgłoszony błąd MySQL.

Po kilku próbach z funkcją "django.db.close_old_connections()" nadal nie działała, ale próbowałem zamykać stare połączenia co określony przedział czasu, co nie działało. Zmieniłem polecenie zamykania, aby było uruchamiane tylko przed wywołaniem mojego niestandardowego polecenia zarządzania (które jest poleceniem, które będzie współdziałać z db i powoduje awarię z błędem MySQL) i zaczęło działać.

Najwyraźniej z tej strony , powodem tego jest fakt, że funkcja „close_old_connection” jest połączona tylko z sygnałami żądań HTTP, więc nie zostanie uruchomiona w określonych skryptach niestandardowych. Dokumentacja Django tego nie mówi i szczerze rozumiałem wszystko w taki sam sposób, w jaki ty rozumiałeś.

Więc możesz spróbować dodać wywołanie, aby zamknąć stare połączenie przed interakcją z db:

from django.db import close_old_connections
close_old_connections()
do_something_with_db()


  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 naprawić BŁĄD 1130 (HY000):Host nie może połączyć się z tym serwerem MySQL

  2. Porządkowanie według kolejności wartości w klauzuli SQL IN()

  3. Laravel:połącz się z bazami danych dynamicznie

  4. Jak mogę wywołać funkcję mysql (jak mysql_insert_id) z Perla, jeśli używam DBI/DBD?

  5. Jak podzielić rekordy tabeli MySQL na pół, aby wyświetlić je z każdej strony strony?