Достаточно перечитать документацию и написать код правильно:
https://docs.sqlalchemy.org/en/13/dialects/mysql.h...Connection Timeouts and Disconnects
MySQL по умолчанию автоматически закрывает подключения, если они простаивают опрделенное время(по умолчанию 8 часов). Чтобы обойти эту проблему, используйте параметр
create_engine.pool_recycle ,который задает время через которое подключение обновляться если оно существует уже столько-то секунд:
engine = create_engine('mysql+mysqldb://...', pool_recycle=3600)
Для обнаружения других типов разрывов нужно использовать переодическую проверку связи.