разрыв mysql соединения в python скрипте

Рейтинг: 0Ответов: 1Опубликовано: 23.07.2023

У меня сразу 3 скрипта, которые подключаются к одной и той же базе данных, в начале каждого скрипта есть подключение:

myconn = mysql.connector.connect(host = "localhost", user = "..",passwd = "..",database = "..")
mycursor = myconn.cursor()

2 скрипта взаимодействуют с ботом телеграмма(на aiogram 3) и находятся в асинхоронном запуске, т.е. постоянно запущены(через asyncio.run(main()))

1 скрипт - не связан с ботом, но связан с базой данных, которая так же используется в двух других скриптах. Он запущен через бесконечный цикл со слипом в 5 секунд.

Если я запускаю все 3 скрипта, то тот, в котором происходит первое обращение к БД нормально отрабабывает, но остальные начинают выдавать такую ошибку и крашатся: mysql.connector.errors.OperationalError: 2055: Lost connection to MySQL server at 'localhost:3306', system error: 10053 Программа на вашем хост-компьютере разорвала установленное подключение

Подскажите, пожалуйста, как правильно организовать несколько подключений к БД, чтобы я мог спокойно получать и изменять значения в таблице без ошибок?

Ответы

▲ 0

Не знаю, насколько это правильно, но в итоге мне помогло следующее:

  1. я выделил подключение к БД в отдельный файл и подключил его ко всем скриптам
  2. начал создавать перед каждым запросом новый курсор и закрывать его в конце выполнения запроса После этого ошибка исчезла и всё стало спокойно параллельно работать, база больше не падала