सबसे पहले, आपको पता होना चाहिए कि चाबियाँ और सूचकांक MySQL में समानार्थक हैं। यदि आप क्रिएट टेबल सिंटैक्स के बारे में प्रलेखन को देखते हैं , तो आप पढ़ सकते हैं:
KEY
सामान्य रूप से एक पर्यायवाची है INDEX
। मुख्य विशेषता PRIMARY KEY
को KEY
कॉलम की परिभाषा में दिए गए अनुसार ही निर्दिष्ट किया जा सकता है । यह अन्य डेटाबेस सिस्टम के साथ संगतता के लिए लागू किया गया था।
अब, आपको जिस तरह की त्रुटि हो रही है, वह दो चीजों के कारण हो सकती है:
- MySQL सर्वर पर डिस्क समस्याएँ
- दूषित कुंजी / टेबल
पहले मामले में, आप देखेंगे कि आपकी क्वेरी में एक सीमा जोड़ने से समस्या अस्थायी रूप से हल हो सकती है। यदि वह आपके लिए ऐसा करता है, तो संभवतः आपके पास एक tmp
फ़ोल्डर है जो आपके द्वारा किए जा रहे प्रश्नों के आकार के लिए बहुत छोटा है। तब आप निर्णय ले सकते हैं या tmp
बड़ा कर सकते हैं , या अपने प्रश्नों को छोटा बना सकते हैं! ;)
कभी-कभी, tmp
काफी बड़ा होता है, लेकिन फिर भी पूर्ण हो जाता है, आपको इन स्थितियों में कुछ मैनुअल सफाई करने की आवश्यकता होगी।
दूसरे मामले में, MySQL के डेटा के साथ वास्तविक समस्याएं हैं। यदि आप डेटा को आसानी से पुन: सम्मिलित कर सकते हैं, तो मैं केवल तालिका को फिर से बनाने / फिर से बनाने और डेटा को पुन: सम्मिलित करने की सलाह दूंगा। यदि आप नहीं कर सकते हैं तो आप REPAIR तालिका के साथ तालिका की मरम्मत करने का प्रयास कर सकते हैं । यह आम तौर पर लंबी प्रक्रिया है जो बहुत अच्छी तरह से विफल हो सकती है।
देखो पूर्ण त्रुटि संदेश आपको मिलता है:
'FILEPATH.MYI' तालिका के लिए गलत कुंजी फ़ाइल; इसे सुधारने का प्रयास करें
यह संदेश में उल्लेख करता है कि आप इसे सुधारने का प्रयास कर सकते हैं। इसके अलावा, यदि आप वास्तविक FILEPATH को देखते हैं, तो आप और अधिक जानकारी प्राप्त कर सकते हैं:
अगर यह कुछ ऐसा है /tmp/#sql_ab34_23f
तो इसका मतलब है कि क्वेरी आकार के कारण MySQL को एक अस्थायी तालिका बनाने की आवश्यकता है। यह इसे / tmp में संग्रहीत करता है, और उस अस्थायी तालिका के लिए आपके / tmp में पर्याप्त स्थान नहीं है।
यदि इसमें इसके बजाय एक वास्तविक तालिका का नाम शामिल है, तो इसका मतलब है कि यह तालिका बहुत भ्रष्ट है और आपको इसकी मरम्मत करनी चाहिए।
यदि आप यह पहचानते हैं कि आपका मुद्दा / tmp के आकार के साथ है, तो ठीक के लिए इसी तरह के प्रश्न का उत्तर पढ़ें: MySQL, त्रुटि 126: तालिका के लिए गलत कुंजी फ़ाइल ।