2016-11-17 11 views
6

से कनेक्शन खो गया है मैं दो MySQL डेटाबेस के साथ SQLAlchemy का उपयोग कर रहा हूं। इनमें से एक मेरा विकास डेटाबेस है जो मेरी मशीन पर स्थानीय रूप से होस्ट किया गया है और दूसरा उत्पादन के लिए हेरोकू पर क्लियर डीबी द्वारा प्रदान किया गया एक MySQL सर्वर है।2013 का निदान 2013 MySQL

मेरे पास डेटाबेस के साथ एक लंबा चलने वाला सत्र खुला है जबकि यह किसी अन्य सेवा के साथ सिंक्रनाइज़ेशन ऑपरेशन करता है। मेरी स्थानीय मशीन पर यह ठीक खत्म हो जाता है लेकिन उत्पादन पर मुझे त्रुटि मिलती है (2013, 'क्वेरी के दौरान MySQL सर्वर से खोया कनेक्शन')।

मैंने अन्य पोस्ट पढ़ी हैं जो कहती हैं कि यह या तो अनुरोध का आकार बहुत बड़ा हो सकता है या पूल रीफ्रेश वैरिएबल को समायोजित करने की आवश्यकता है। मुझे विश्वास नहीं है कि लेनदेन पेलोड अपेक्षाकृत बड़ा है और SQLAlachemy create_engine को कॉल करते समय pool_recycle चर सेट करना काम नहीं कर रहा है।

क्या किसी और ने इस समस्या का अनुभव किया है या उस त्रुटि के लिए अंतर्निहित कारण क्या है, इसे कम करने में मेरी सहायता करने में सक्षम है - यह सब कुछ पकड़ने जैसा लगता है और मुझे यकीन नहीं है कि यहां से कहां जाना है।

टिप्पणी में अनुरोध के रूप में, दोनों प्रणालियों select @@interactive_timeout, @@wait_timeout के लिए एक ही मान: 28800, 28800.

धन्यवाद

+1

कृपया अपने SQL डेटाबेस और उत्पादन डेटाबेस दोनों पर इस SQL ​​क्वेरी को जारी करें। '@@ इंटरएक्टिव_टाउटआउट, @@ wait_timeout' चुनें। कृपया हमें बताएं कि आपके दो डेटाबेस पर आपके मूल्य क्या हैं। कभी-कभी उत्पादन डेटाबेस में देव डेटाबेस से छोटे टाइमआउट होते हैं। –

+0

आह मैंने इन नंबरों को शामिल करना था जब मैंने इसे पोस्ट करना शुरू किया ... लेकिन भूल गया। मैंने अपना प्रश्न अपडेट कर लिया है। धन्यवाद @ ओ। जोन्स – freebie

+0

क्या आपने एक इंटरैक्टिव क्लाइंट सत्र में चर का चयन किया था? यदि ऐसा है, तो आपको 'SELECT @@ global.interactive_timeout, @@ global.wait_timeout' करना होगा। एक इंटरैक्टिव सत्र में सत्र-स्तर 'wait_timeout' को' इंटरैक्टिव टाइमआउट 'में समायोजित किया जाता है, इसलिए यह बेकार है। – elenst

उत्तर

2

हालांकि दो डेटाबेस, एक ही समय समाप्ति और config का उपयोग करने की आम तौर पर दिखाई देते हैं। यह ClearDB द्वारा कहीं और प्रदर्शन किया गया एक टाइमआउट साबित हुआ।

ClearDB मॉनिटर कनेक्शन और उन्हें एक मिनट से अधिक समय के लिए खोलने पर मार दें। मैं मूल रूप से यह docuemnted नहीं ढूंढ पाया था।

ठीक वास्तव में इंजन बनाने पर pool_recycle=60 करने के लिए pool_recycle पैरामीटर था। इस पर मेरा पिछला प्रयास मैं एक मनमाना संख्या का उपयोग कर रहा था (क्योंकि मुझे साफ़ डीडीडी का टाइमआउट नहीं पता था) इससे अधिक है।