Сообщение об ошибке "Сервер MySQL удален" на сайте Django, размещенном на cPanel

Я размещаю проект Django на общем сервере с использованием cPanel, и в последнее время я столкнулся с неприятной проблемой.

На нескольких страницах сайта я получаю сообщение об ошибке внутреннего сервера 500. После проверки Sentry я постоянно вижу эту ошибку:

Level: Error  
(2006, "MySQL server has gone away (ConnectionResetError(104, 'Connection reset by peer'))")

Это происходит случайным образом, но часто и, похоже, происходит на любой странице, которая касается базы данных.

Что я пробовал

  • Установите CONN_MAX_AGE = 600 для сохранения подключений к базе данных

  • Увеличено время ожидания подключения

  • Тщательно искал в Интернете и даже пробовал предложения в чате — пока безуспешно

Нет доступа к логам MySQL или конфигурациям сервера (общий хостинг cPanel)

Моя текущая конфигурация БАЗ данных:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '***',
        'USER': '***',
        'PASSWORD': '***', 
        'HOST': 'localhost',
        'PORT': '3306',
        'CONN_MAX_AGE': 600, 
        'OPTIONS': {
            'charset': 'utf8mb4',
            'connect_timeout': 10,
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
        }
    }
}

В чем мне нужна помощь

  • Это проблема с тайм-аутом MySQL или что-то связанное с ограничениями cPanel на MySQL?
  • Есть ли какой-нибудь способ лучше справиться с этим в Django, учитывая мои ограничения на хостинг?
  • Должен ли я попросить своего хостера изменить настройки MySQL (например, wait_timeout, max_allowed_packet)?
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': '*',
        'USER': '*',
        'PASSWORD': '*', 
        'HOST': 'localhost',
        'PORT': '3306',
        'CONN_MAX_AGE': 0,   # add this
        'OPTIONS': {
            'charset': 'utf8mb4',
            'connect_timeout': 60,
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'"
            }

    }
}   




//This configuration has been working fine for me so far.
Вернуться на верх