У меня есть два успокаивающих API-интерфейса. Оба работают нормально. API1 предназначен только для чтения базы данных, API2 занимается обновлением / вставкой. Оба обращаются к одной и той же базе данных.
Проблема:
API1 перестает работать каждое утро, и мне приходится перезапускать его каждый раз (один раз утром). Ошибка - сервер MySQL ушел.
API2 всегда работает, ошибок не дает.
Ранее я думал, что wait_timeout (по умолчанию 8 часов) может быть причиной того, что API1 выдает эту ошибку. Но почему тогда API2 работает? (Я использую класс для операций с базой данных, и у меня есть строка подключения в его методе инициализации. Кроме того, я не закрываю какое-либо соединение с базой данных. Я очень скоро отредактирую его, чтобы исправить это, просто предоставив здесь информацию, чтобы узнать точную причина этой ошибки)
Вопрос - Почему только API1 выдает эту ошибку, а API2 - никогда?
PS - Я спросил об этом в stackoverflow, но мне посоветовали опубликовать это здесь, так как я так и не нашел здесь репоста ответа
Файл конфигурации MySQL:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
lc-messages-dir = /usr/share/mysql
bind-address = 127.0.0.1
key_buffer_size = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover-options = BACKUP
#max_connections = 100
#table_cache = 64
#thread_concurrency = 10
query_cache_limit = 1M
query_cache_size = 16M
Журнал ошибок
2020-04-02T10:30:13.606051Z 15 [Note] Aborted connection 15 to db: 'databasename' user: 'root' host: 'localhost' (Got an error reading communication packets)
Класс базы данных выглядит так:
import MySQLdb
class Db:
parameters = ("localhost", "root", "password", "databasename")
def __init__(self):
conn = MySQLdb.connect(*self.parameters)
self.cur = conn.cursor()