MySQL सर्वर के चले जाने के कुछ अन्य सामान्य कारण त्रुटि हैं:
-
आपने (या डीबी व्यवस्थापक) ने चल रहे थ्रेड को किल स्टेटमेंट या mysqladmin किल कमांड से मार दिया है।
-
आपने सर्वर से कनेक्शन बंद करने के बाद क्वेरी चलाने का प्रयास किया। यह एप्लिकेशन में एक तर्क त्रुटि को इंगित करता है जिसे ठीक किया जाना चाहिए।
-
किसी भिन्न होस्ट पर चलने वाले क्लाइंट एप्लिकेशन के पास उस होस्ट से MySQL सर्वर से कनेक्ट करने के लिए आवश्यक विशेषाधिकार नहीं होते हैं।
-
आपको क्लाइंट साइड पर टीसीपी/आईपी कनेक्शन से टाइमआउट मिला है। यह तब हो सकता है जब आप कमांड का उपयोग कर रहे हों:mysql_options(..., MYSQL_OPT_READ_TIMEOUT,...) या mysql_options(..., MYSQL_OPT_WRITE_TIMEOUT,...)। इस मामले में टाइमआउट बढ़ाने से समस्या को हल करने में मदद मिल सकती है।
-
आपने सर्वर साइड पर एक टाइमआउट का सामना किया है और क्लाइंट में स्वचालित पुन:कनेक्शन अक्षम है (MYSQL संरचना में पुन:कनेक्ट ध्वज 0 के बराबर है)।
-
आप एक Windows क्लाइंट का उपयोग कर रहे हैं और सर्वर ने आदेश जारी होने से पहले कनेक्शन को छोड़ दिया था (शायद इसलिए कि Wait_timeout समाप्त हो गया था)।
-
विंडोज़ पर समस्या यह है कि कुछ मामलों में सर्वर से टीसीपी/आईपी कनेक्शन पर लिखते समय MySQL को ओएस से कोई त्रुटि नहीं मिलती है, बल्कि कनेक्शन से उत्तर पढ़ने की कोशिश करते समय त्रुटि मिलती है।
-
इसका समाधान या तो कनेक्शन पर एक mysql_ping() करना है यदि अंतिम क्वेरी के बाद से एक लंबा समय हो गया है (यह वही है जो कनेक्टर/ओडीबीसी करता है) या mysqld सर्वर पर Wait_timeout को इतना ऊंचा सेट करें कि यह अभ्यास में कभी भी समय न हो बाहर।
-
यदि आप सर्वर को कोई क्वेरी भेजते हैं जो गलत है या बहुत बड़ी है, तो आपको ये त्रुटियां भी मिल सकती हैं। यदि mysqld को एक पैकेट प्राप्त होता है जो बहुत बड़ा या क्रम से बाहर है, तो यह मानता है कि क्लाइंट के साथ कुछ गलत हो गया है और कनेक्शन बंद कर देता है। यदि आपको बड़े प्रश्नों की आवश्यकता है (उदाहरण के लिए, यदि आप बड़े BLOB कॉलम के साथ काम कर रहे हैं), तो आप सर्वर के max_allowed_packet वैरिएबल को सेट करके क्वेरी सीमा बढ़ा सकते हैं, जिसका डिफ़ॉल्ट मान 4MB है। आपको क्लाइंट एंड पर अधिकतम पैकेट आकार बढ़ाने की भी आवश्यकता हो सकती है। पैकेट का आकार निर्धारित करने के बारे में अधिक जानकारी खंड B.5.2.10, "पैकेट बहुत बड़ा" में दी गई है।
-
एक INSERT या REPLACE स्टेटमेंट जो बहुत सारी पंक्तियों को सम्मिलित करता है, भी इस प्रकार की त्रुटियों का कारण बन सकता है। इन कथनों में से कोई एक सर्वर को एक ही अनुरोध भेजता है, चाहे कितनी भी पंक्तियाँ सम्मिलित की जाएँ; इस प्रकार, आप प्रति INSERT या REPLACE में भेजी गई पंक्तियों की संख्या को कम करके अक्सर त्रुटि से बच सकते हैं।
-
यदि आप 16MB या उससे अधिक का पैकेट भेज रहे हैं, यदि आपका क्लाइंट 4.0.8 से अधिक पुराना है और आपका सर्वर 4.0.8 और उससे अधिक है, या इसके विपरीत, तो आपको एक खोया हुआ कनेक्शन भी मिलता है।
-
यदि होस्ट नाम लुकअप विफल हो जाता है तो यह त्रुटि देखना भी संभव है (उदाहरण के लिए, यदि DNS सर्वर जिस पर आपका सर्वर या नेटवर्क निर्भर करता है)। ऐसा इसलिए है क्योंकि MySQL नाम समाधान के लिए होस्ट सिस्टम पर निर्भर है, लेकिन यह जानने का कोई तरीका नहीं है कि यह काम कर रहा है या नहीं - MySQL के दृष्टिकोण से समस्या किसी अन्य नेटवर्क टाइमआउट से अप्रभेद्य है।
-
आप यह भी देख सकते हैं कि यदि MySQL --स्किप-नेटवर्किंग विकल्प के साथ MySQL प्रारंभ किया गया है तो MySQL सर्वर त्रुटि दूर हो गया है।
-
एक अन्य नेटवर्किंग समस्या जो इस त्रुटि का कारण बन सकती है यदि MySQL पोर्ट (डिफ़ॉल्ट 3306) आपके फ़ायरवॉल द्वारा अवरुद्ध है, इस प्रकार MySQL सर्वर से किसी भी कनेक्शन को रोक रहा है।
-
आप इस त्रुटि का सामना उन अनुप्रयोगों के साथ भी कर सकते हैं जो फोर्क चाइल्ड प्रोसेस करते हैं, जो सभी MySQL सर्वर से समान कनेक्शन का उपयोग करने का प्रयास करते हैं। प्रत्येक चाइल्ड प्रोसेस के लिए एक अलग कनेक्शन का उपयोग करके इससे बचा जा सकता है।
-
आपने एक बग का सामना किया है जहां क्वेरी निष्पादित करते समय सर्वर की मृत्यु हो गई।
इस लिंक की जाँच करें:गॉन अवे