Lý do của hành vi đó là kết nối liên tục với cơ sở dữ liệu, được giới thiệu trong Django 1.6.
Để tránh lỗi hết thời gian kết nối, bạn nên đặt CONN_MAX_AGE
trong settings.py
thành giá trị nhỏ hơn wait_timeout
trong cấu hình MySQL (my.cnf
). Trong trường hợp đó, Django phát hiện kết nối đó cần được mở lại sớm hơn so với MySQL ném nó. Giá trị mặc định cho MySQL 5.7 là 28800 giây.
settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'CONN_MAX_AGE': 3600,
<other params here>
}
}
Tài liệu: https://docs.djangoproject.com/ vi / 1.7 / ref / settings / # conn-max-age
my.cnf
:
wait_timeout = 28800
Tài liệu: https://dev.mysql .com / doc / refman / 5.7 / en / server-system-variable.html # sysvar_wait_timeout