तालिकाओं और अनुक्रमणिकाओं में परिवर्तन यह दर्शाता है कि MySQL डेटा प्रकारों और वर्ण सेटों को कैसे संभालता है। आवश्यक तालिका की मरम्मत या उन्नयन की रिपोर्ट CHECK TABLE, mysqlcheck, या mysql_upgrad द्वारा की जाती है।
टेबल फिर से बनाएं
तालिका के पुनर्निर्माण के कई तरीके हैं। उनमें से कुछ को नीचे सूचीबद्ध किया गया है -
-
डंप और रीलोड विधि
-
वैकल्पिक तालिका विधि
-
मरम्मत तालिका विधि
आइए हम उनमें से प्रत्येक को संक्षेप में समझें -
डंप और रीलोड विधि
यदि तालिकाओं को इस तथ्य के कारण फिर से बनाया जा रहा है कि MySQL संस्करण के विभिन्न संस्करण बाइनरी (इन-प्लेस) अपग्रेड या डाउनलोड के बाद तालिकाओं को संभाल नहीं सकते हैं, तो इस डंप और रीलोड विधि का उपयोग करने की आवश्यकता है।
एक टेबल को डंप करके और फिर से लोड करके फिर से बनाया जा सकता है। यह 'mysqldump' का उपयोग करके और एक डंप फ़ाइल बनाकर और mysql को फ़ाइल को फिर से लोड करने की अनुमति देकर किया जा सकता है। यह नीचे दिए गए आदेशों का उपयोग करके किया जा सकता है -
mysqldump db_name t1 > dump.sql mysql db_name < dump.sql
यदि सभी तालिकाओं को एक ही डेटाबेस में फिर से बनाया जाना है, तो डेटाबेस का नाम बिना किसी तालिका नाम का उपयोग किए निर्दिष्ट किया जा सकता है। यह नीचे दिए गए कमांड का उपयोग करके किया जा सकता है -
mysqldump db_name > dump.sql mysql db_name < dump.sql
यदि सभी डेटाबेस में सभी तालिकाओं को फिर से बनाया जाना है, तो '- - सभी डेटाबेस' विकल्प का उपयोग करना होगा। यह नीचे दिए गए कमांड का उपयोग करके किया जा सकता है -
mysqldump --all-databases > dump.sql mysql < dump.sql
तालिका विधि बदलें
यदि किसी तालिका को ALTER TABLE विधि का उपयोग करके फिर से बनाने की आवश्यकता है, तो एक "शून्य" परिवर्तन का उपयोग किया जा सकता है। एक वैकल्पिक तालिका विवरण का उपयोग किया जा सकता है जो तालिका को बदलता है ताकि वह भंडारण इंजन का उपयोग कर सके। आइए एक उदाहरण लेते हैं:मान लीजिए कि TblName एक InnoDB तालिका है, नीचे दिए गए कथन का उपयोग तालिका के पुनर्निर्माण के लिए किया जा सकता है -
ALTER TABLE TblName ENGINE = InnoDB;
रिपेयर टेबल मेथड
REPAIR TABLE विधि केवल MyISAM, ARCHIVE और CSV तालिकाओं पर लागू होती है। स्टेटमेंट रिपेयर टेबल का उपयोग किया जा सकता है यदि टेबल चेकिंग ऑपरेशन से पता चलता है कि फाइल दूषित हो गई है या अपग्रेड की आवश्यकता है। आइए एक उदाहरण लेते हैं:MyISAM तालिका को सुधारने के लिए, नीचे दिए गए कथन को निष्पादित किया जा सकता है -
REPAIR TABLE TblName;
mysqlcheck −−repair REPAIR TABLE स्टेटमेंट के लिए कमांड−लाइन एक्सेस प्रदान करता है। यह तालिकाओं की मरम्मत का एक अधिक सुविधाजनक साधन हो सकता है क्योंकि आप डेटाबेस में किसी विशिष्ट तालिका को सुधारने के लिए −−डेटाबेस का उपयोग कर सकते हैं या सभी डेटाबेस में सभी तालिकाओं को सुधारने के लिए −−all−डेटाबेस विकल्प का उपयोग कर सकते हैं। यह नीचे दिए गए आदेशों का उपयोग करके किया जा सकता है -
mysqlcheck −−repair −−databases db_name ... mysqlcheck −−repair −−all−databases