Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tại sao tôi nhận được máy chủ MySQL đã biến mất ngoại lệ trong Django?

Tôi đã có chính xác cùng một vấn đề hơn của bạn. Tôi đã triển khai một tập lệnh giám sát bằng cách sử dụng thư viện watchdogs và vào cuối "wait_timeout", lỗi MySQL sẽ xuất hiện.

Sau một vài lần thử với hàm "django.db.close_old_connections ()", nó vẫn không hoạt động, nhưng tôi đã cố gắng đóng các kết nối cũ mỗi khoảng thời gian đã xác định, nhưng không hoạt động. Tôi đã thay đổi lệnh đóng để chỉ chạy trước lệnh gọi của lệnh quản lý tùy chỉnh của mình (là lệnh sẽ tương tác với db và được sử dụng để gặp sự cố với lỗi MySQL) và nó bắt đầu hoạt động.

Rõ ràng từ trang này , lý do tại sao điều đó xảy ra là vì hàm "close_old_connection" chỉ được liên kết với các tín hiệu yêu cầu HTTP, vì vậy nó sẽ không được kích hoạt trong các tập lệnh tùy chỉnh cụ thể. Tài liệu của Django không cho biết điều đó, và thành thật mà nói, tôi cũng hiểu mọi thứ giống như cách bạn đang hiểu.

Vì vậy, những gì bạn có thể thử làm là thêm lệnh gọi để đóng kết nối cũ trước khi tương tác với 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. MySQL- Tại sao LAST_INSERT_ID () không hoạt động với tôi?

  2. Loại bỏ các hàng trùng lặp trong câu lệnh PostgreSQL SELECT

  3. Cách sử dụng Hibernate eqOrIsNull ()

  4. Tối ưu hóa truy vấn mysql của tôi để sử dụng chỉ mục để sắp xếp

  5. Tập lệnh CREATE được xuất bởi MySQL Workbench có lỗi cú pháp trên máy tính khác