Alasan dari perilaku tersebut adalah koneksi terus-menerus ke database, yang diperkenalkan di Django 1.6.
Untuk mencegah kesalahan waktu tunggu koneksi, Anda harus menyetel CONN_MAX_AGE
di settings.py
ke nilai yang kurang dari wait_timeout
di konfigurasi MySQL (my.cnf
). Dalam kasus itu Django mendeteksi bahwa koneksi perlu dibuka kembali lebih awal dari yang dilempar MySQL. Nilai default untuk MySQL 5.7 adalah 28800 detik.
settings.py
:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'CONN_MAX_AGE': 3600,
<other params here>
}
}
Dokumentasi:https://docs.djangoproject.com/ id/1.7/ref/settings/#conn-max-age
my.cnf
:
wait_timeout = 28800
Dokumentasi:https://dev.mysql .com/doc/refman/5.7/en/server-system-variables.html#sysvar_wait_timeout