ऐसा लगता है कि निष्क्रियता की लंबी अवधि के बाद आपका MySQL कनेक्शन समय समाप्त हो रहा है, मुझे यकीन है कि ऐसा नहीं होगा यदि आप मौजूदा सेटिंग्स के साथ लगातार अपने डीबी से पूछताछ कर रहे हैं। MySQL और sql दोनों पक्षों पर कुछ सेटिंग्स हैं जो इस समस्या को हल करना चाहिए:
-
अपने SQLa इंजन के
pool_recycle
की जाँच करें मान, भिन्न/छोटे मान का प्रयास करें, उदा। 1800 (सेकंड)। यदि आप फ़ाइल से DB सेटिंग्स पढ़ रहे हैं, तो इसे इस रूप में सेट करेंपूल_रीसायकल:1800
अन्यथा इसे इंजन init के दौरान निर्दिष्ट करें, उदा.
from sqlalchemy import create_engine
e = create_engine("mysql://user:[email protected]/db", pool_recycle=1800)
-
अपना
wait_timeout
चेक/संशोधित करें MySQL वैरिएबल, देखें https://dev .mysql.com/doc/refman/5.6/hi/server-system-variables.html#sysvar_wait_timeout जो कि सर्वर को बंद करने से पहले एक गैर-संवादात्मक कनेक्शन पर गतिविधि के लिए प्रतीक्षा करने वाले सेकंड की संख्या है। उदा.'wait_timeout' जैसे वैश्विक चर दिखाएं;
एक संयोजन खोजें जो आपके पर्यावरण के लिए काम करता हो।