जैसा कि आप में से बहुत से लोग जानते हैं कि यह ब्लॉग वर्डप्रेस पर चलता है और वर्डप्रेस के तहत एक MySQL डेटाबेस है। MySQL डेटाबेस काफी अच्छा है और इस ब्लॉग को प्रतिदिन प्राप्त होने वाले भारी ट्रैफिक को धारण करने में सक्षम है। हालाँकि, किसी भी डेटाबेस की तरह ही MySQL को ट्यूनिंग के साथ-साथ उसके उचित प्रबंधन की भी आवश्यकता होती है। इस ब्लॉग पोस्ट में हम इस बारे में चर्चा करेंगे कि मुझे एक बहुत ही अजीब त्रुटि वर्डप्रेस डेटाबेस त्रुटि कैसे मिली और मैंने इसे कैसे हल किया।
पिछले हफ्ते, अचानक मुझे एक दोस्त का फोन आया कि हमारा ब्लॉग बहुत धीमी गति से लोड हो रहा है। खैर, जब कोई नया ब्लॉग पोस्ट प्रकाशित होता है या न्यूज़लेटर भेजा जाता है, तो ट्रैफ़िक में स्पाइक और वेबसाइट के प्रदर्शन में क्षणिक रूप से धीमापन देखना बहुत आम है। हालांकि, इस मामले में, वेबसाइट लगातार धीमी गति से चल रही थी। थोड़ी देर बाद हमें साइट पर कुछ नई समस्याएं मिलीं। प्रदर्शन की धीमी गति के कारण, हमें यह भी पता चला कि वर्डप्रेस शेड्यूलर नए ब्लॉग पोस्ट प्रकाशित नहीं कर रहा था और साथ ही सिस्टम का नियमित बैकअप नहीं ले रहा था।
सावधानीपूर्वक निदान के बाद मुझे पता चला कि समस्या MySQL डेटाबेस के साथ थी। जब मैंने त्रुटि लॉग की जाँच की, तो मुझे लॉग में निम्न त्रुटि मिली।
[शुक्र सितम्बर 09 04:58:03 2016] [त्रुटि] [ग्राहक] वर्डप्रेस डेटाबेस त्रुटि क्वेरी के लिए 'प्राथमिक' कुंजी के लिए डुप्लिकेट प्रविष्टि '3354142' wp_options में सम्मिलित करें (विकल्प_नाम) , option_value, autoload) VALUES (…)
यह बहुत स्पष्ट था कि विकल्प तालिका में एक प्राथमिक कुंजी उल्लंघन था। हालाँकि, समस्या को हल करना आसान नहीं था क्योंकि मैंने व्यक्तिगत रूप से इस तालिका के साथ कोई लेनदेन नहीं किया था या हाल के समय में कोई नया अपडेट या प्लगइन परिवर्तन नहीं हुआ था। मेरा पहला प्रयास इस विशेष तालिका को पुराने डेटाबेस बैकअप से पुनर्स्थापित करना था (मैं अपनी साइट और इसके डेटाबेस का लगातार बैकअप लेता हूं)। यहाँ तक कि यह विशेष समस्या भी विफल रही और मैं त्रुटि से छुटकारा नहीं पा सका।
आखिरकार, मैंने इंटरनेट पर खोजबीन की लेकिन अफसोस, कोई वास्तविक मदद नहीं मिली। उस समय, मैंने विभिन्न परीक्षण और त्रुटि करने का निर्णय लिया। मेरा विश्वास करो, मैं इस त्रुटि से छुटकारा पाने के लिए 4 घंटे से अधिक और विभिन्न प्रकार की तरकीबें लगाता हूं। मेरे लिए यह बहुत स्पष्ट था कि यह डेटाबेस पर तार्किक अखंडता त्रुटि थी, मुझे बहुत सारी तालिकाओं और तर्क के साथ समय बिताना पड़ा। खैर, 4 घंटे के बाद, मुझे आखिरकार एक समाधान मिल गया और यह एक बहुत ही सरल उपाय था। काश, मुझे यह पहले पता होता और विभिन्न परीक्षणों और त्रुटियों पर 4 घंटे से अधिक समय नहीं लगा होता।
समाधान / समाधान:
मैं बस निम्नलिखित आदेश के बाद भागा, मेरी समस्या का समाधान हो गया।
REPAIR TABLE wp_options
बस! यह हो गया।
वास्तविकता यह थी कि मेरी तालिका दूषित हो गई थी और उसी कारण से मुझे अपने डेटाबेस तालिका के लिए डुप्लिकेट कुंजी से संबंधित त्रुटि मिल रही थी। एक बार जब मैंने तालिका के भ्रष्टाचार को ठीक कर दिया, तो सब कुछ ठीक रहा। याद रखें, मेरे मामले में यह wp_options तालिका थी जो दूषित हो गई थी, आपको इसे अपने तालिका नाम से बदलना होगा और स्क्रिप्ट ठीक काम करेगी।
इसके अतिरिक्त, यदि आप अपने डेटाबेस में सभी तालिकाओं को ठीक करना चाहते हैं, तो आप निम्न स्क्रिप्ट निष्पादित कर सकते हैं और यह आपके MySQL डेटाबेस में प्रत्येक तालिका के लिए स्क्रिप्ट उत्पन्न करेगा। एक बार जब आप स्क्रिप्ट निष्पादित कर लेंगे, तो आप अपने डेटाबेस की प्रत्येक तालिका की मरम्मत करेंगे।
SELECT CONCAT('repair table ', table_name, ';') FROM information_schema.tables WHERE table_schema='YourDatabaseName';
मुझे आशा है कि आपको यह ब्लॉग पोस्ट उपयोगी लगी होगी। यदि आपको कभी भी WordPress MySQL डेटाबेस में कोई समस्या है, तो मुझसे संपर्क करें, मुझे उससे संबंधित किसी भी त्रुटि को हल करने में आपकी मदद करने में खुशी होगी।