знает)
Есть джанга, она работает с марияДБ. Ночь спустя, при попытке что-то подёргать на фронтенде вываливается эксепшн:
OperationalError: (2006, 'MySQL server has gone away')
Причина == БД закрывает коннеккшены по таймауту.
Гугл предложил выставить CONN_MAX_AGE в значение меньше wait_timeout на БД. Типа, джанга будет сама рвать коннекшн и открывать новый. Не помогло. Ваще не изменилось поведение.
Куда ещё смотреть?
celery какой-нибудь?
Не понял) Обычными настройками не победить?
нет, я спрашиваю у вас соединения эти где используются? в джанге или в воркерах?
вот прямо в хендлере при обработке запроса вылетает ошибка?
Да, в хэндлере дёргаются модели и БАБАХ
1. покажи настройки DATABASES 2. покажи код хендлера 3. покажи модели 4. покажи трейсбек
БД: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': os.getenv('TD_DB_NAME', 'td_db'), 'HOST': db_host, 'PORT': '3306', 'USER': os.environ['TD_DB_USER'], 'PASSWORD': os.environ['TD_DB_PASS'], 'CONN_MAX_AGE': 5, } } Трейс: 2020-11-16 14:06:23,569 | ERROR| django.request | Internal Server Error: /api/env/ Traceback (most recent call last): File "/root/.pyenv/versions/3.8.5/lib/python3.8/site-packages/django/db/backends/utils.py", line 84, in _execute return self.cursor.execute(sql, params) File "/root/.pyenv/versions/3.8.5/lib/python3.8/site-packages/django/db/backends/mysql/base.py", line 73, in execute return self.cursor.execute(query, args) File "/root/.pyenv/versions/3.8.5/lib/python3.8/site-packages/MySQLdb/cursors.py", line 206, in execute res = self._query(query) File "/root/.pyenv/versions/3.8.5/lib/python3.8/site-packages/MySQLdb/cursors.py", line 319, in _query db.query(q) File "/root/.pyenv/versions/3.8.5/lib/python3.8/site-packages/MySQLdb/connections.py", line 259, in query _mysql.connection.query(self, query) MySQLdb._exceptions.OperationalError: (2006, 'MySQL server has gone away')
Обсуждают сегодня