Skip to main content

Mysqldump क्या है और मैं इसका उपयोग कैसे करूं?

एक काम उदाहरण - mysqldump कमांड का उपयोग कैसे करें (जून 2026)

एक काम उदाहरण - mysqldump कमांड का उपयोग कैसे करें (जून 2026)
Anonim

अग्रणी स्वतंत्र रूप से उपलब्ध डेटाबेसों में से एक के रूप में, MySQL वेब अनुप्रयोगों के सभी प्रकार के लिए एक लोकप्रिय पसंद है। इंटरनेट से संपर्क होने के नाते, आपका ऐप निश्चित रूप से दुर्भावनापूर्ण हमलों से अवगत कराया गया है। यदि आपके सर्वर से समझौता किया गया है, तो सबसे अच्छा आपको अपने आवेदन को फिर से इंस्टॉल करना होगा; सबसे खराब, आप अपना डेटा पूरी तरह से खो सकते हैं। आप अंततः ऐसी स्थिति में रहेंगे जहां आपको एक सर्वर से दूसरे सर्वर पर डेटाबेस माइग्रेट करने की आवश्यकता होती है।

Mysqldump के लिए क्या उपयोग किया जाता है?

mysqldump उपकरण आपने इन दोनों स्थितियों के लिए कवर किया है। यह मूल कार्य है एक MySQL डेटाबेस लेना और टेक्स्ट फ़ाइल के रूप में इसे "डंप" करना। लेकिन सिर्फ कोई पाठ फ़ाइल नहीं … फ़ाइल एक है एसक्यूएल स्टेटमेंट का सेट। इन कथनों को निष्पादित करते समय, आपके डेटाबेस को उस सटीक स्थिति में फिर से बनाया जाएगा जब आपने डंप निष्पादित किया था।

तो आप इसका उपयोग कर सकते हैं mysqldump डेटाबेस का निर्यात करने के लिए। ये बैकअप के उद्देश्य के लिए हो सकते हैं, या क्योंकि आप डेटाबेस को नए होस्ट में ले जा रहे हैं। किसी भी मामले में, आप किसी बिंदु पर करेंगे आयात टेक्स्ट फ़ाइल को एक MySQL डेटाबेस सर्वर में वापस ले जाएं। यह फ़ाइल में सभी SQL कथन निष्पादित करेगा, जो आपके डीबी को मूल स्थिति में पुनर्निर्माण करता है। यह हिस्सा वास्तव में उपयोग नहीं करता है mysqldump आदेश, लेकिन यह उपयोगिता के बिना भी संभव नहीं होगा!

MySQL दस्तावेज़ बैकअप बनाने के अन्य तरीकों की सूची देते हैं, लेकिन इन सभी की अपनी कमियां हैं:

  • MySQL एंटरप्राइज़ से डीबी हॉटकोपी करना इन बैकअप को प्राप्त करने का एक शानदार तरीका है … यदि आपको एंटरप्राइज़ मूल्य टैग नहीं है।
  • डीबी की डेटा निर्देशिकाओं की प्रतिलिपि बनाना मुश्किल हो सकता है यदि आप ऑपरेटिंग सिस्टम में आगे बढ़ रहे हैं, क्योंकि उनके गंतव्य अलग होंगे।
  • एक सीमांकित टेक्स्ट फ़ाइल में निर्यात करने से आपको सामग्री मिल जाएगी, लेकिन आपको खुद को संरचना को फिर से बनाना होगा। और आप बेहतर इसे ठीक से प्राप्त करेंगे …
  • आप अक्सर MySQL वर्कबेंच जैसे जीयूआई प्रोग्राम से बैकअप डेटाबेस कर सकते हैं। लेकिन यह एक मैन्युअल प्रक्रिया है, यानी ऐसा कुछ नहीं जिसे आप स्क्रिप्ट कर सकते हैं या बैच नौकरी में शामिल कर सकते हैं।

Mysqldump उपकरण स्थापित करना

यदि आप इस आलेख में रूचि रखते हैं, तो संभावना है कि आपके पास पहले से ही MySQL इंस्टॉल है। यदि ऐसा है, तो अच्छी खबर - आपके पास पहले से ही है mysqldump! यदि नहीं, तो आप बस अपने ऑपरेटिंग सिस्टम के लिए मानक तरीके से MySQL इंस्टॉल कर सकते हैं।

विंडोज़ के लिए, विंडोज 7 पर MySQL स्थापित करने के लिए यहां हमारे निर्देशों की जांच करें (इंस्टॉल प्रक्रिया अभी भी वही है)। इसी प्रकार मैकोज़ पर, मैकोज़ 10.7 पर फिर से MySQL स्थापित करने के लिए हमारी दिशाएं देखें (फिर से, पुराना लेकिन अभी भी लागू)। उबंटू-आधारित लिनक्स सिस्टम के उपयोगकर्ता MySQL क्लाइंट और उपयोगिताओं को स्थापित करने के लिए निम्न आदेश का उपयोग कर सकते हैं:

sudo apt mysql-client स्थापित करें

एक MySQL डंप निकालना

एक बार स्थापित हो जाने पर, आप इसका उपयोग कर सकते हैं mysqldump अपने डेटाबेस का पूर्ण बैकअप प्राप्त करने के लिए।

mysqldump -h आपका डीबी होस्ट का नाम या आईपी -यू डीबी उपयोगकर्ता का नाम -पी डेटाबेस नाम> db_backup.sql

आइए इस कमांड को थोड़ा नीचे तोड़ दें:

  • "-H": यह ध्वज डेटाबेस है मेज़बान। यह एक पूर्ण होस्ट नाम (उदा। Myhost.domain.com) या एक आईपी पता हो सकता है। यदि आप इसे उसी मेजबान पर MySQL सर्वर के रूप में चला रहे हैं तो आप इसे खाली भी छोड़ सकते हैं।
  • "-U": जैसा कि बताया गया है, यह तुम्हारा है उपयोगकर्ता नाम.
  • "-P": यदि आप अपनी MySQL स्थापना को ठीक से सुरक्षित कर चुके हैं, तो आपको एक की आवश्यकता होगी पारण शब्द संपर्क करना। जब आप आदेश निष्पादित करते हैं तो कोई तर्क नहीं वाला यह ध्वज आपको पासवर्ड के लिए संकेत देगा। कभी-कभी यह आपके ध्वज को सीधे इस ध्वज के तर्क के रूप में प्रदान करना उपयोगी होता है, उदाहरण के लिए बैकअप स्क्रिप्ट में। लेकिन प्रॉम्प्ट पर, आपको नहीं करना चाहिए, क्योंकि अगर किसी ने आपके कंप्यूटर तक पहुंच प्राप्त की है, तो वे आपके पासवर्ड इतिहास में यह पासवर्ड प्राप्त कर सकते हैं।
  • "> db_backup.sql": यह आखिरी हिस्सा बता रहा है mysqldump अपने सभी आउटपुट को फाइल में निर्देशित करने के लिए। आम तौर पर, कमांड कंसोल पर सीधे सबकुछ आउटपुट करेगा, जिसका अर्थ है कि आप एसक्यूएल स्टेटमेंट्स का एक गुच्छा उड़ेंगे। लेकिन इसके बजाय, *> * प्रतीक उन सभी चीज़ों को नामित टेक्स्ट फ़ाइल में फ़नल करने का संकेत है। और यदि यह फ़ाइल मौजूद नहीं है, तो यह स्वचालित रूप से बनाई जाएगी।

जब यह समाप्त हो जाए, तो आपके पास एक .SQL फ़ाइल होगी। यह सिर्फ एक पाठ फ़ाइल है जिसमें SQL कथन शामिल हैं। सामग्री का निरीक्षण करने के लिए आप इसे किसी भी टेक्स्ट एडिटर में खोल सकते हैं। एक वर्डप्रेस डेटाबेस से निर्यात को देखते हुए, आप देख सकते हैं कि इन फ़ाइलों को एक साथ कैसे रखा जाता है।

फ़ाइल खंडों में विभाजित है। उपर्युक्त छवि में, हम वर्डप्रेस टिप्पणियों के लिए तालिका को सेट अप करने वाले पहले अनुभाग को देख सकते हैं। दूसरा खंड तब सामग्री (यानी टिप्पणी रिकॉर्ड) को दोबारा शुरू करता है जो उन तालिकाओं में था। जब आप फिर से अपना MySQL डंप फिर से आयात करने के लिए जाते हैं, तो कमांड फाइल के माध्यम से काम करेगा, कथन निष्पादित करेगा और आपके डेटाबेस को फिर से बनाया जाएगा। तो आप यह कैसे करते हैं? चलो एक नज़र डालते हैं।

एक MySQL डंप फ़ाइल आयात करना

ऐसा करने में सक्षम होने से पहले, आपको पहले से बनाए गए डेटाबेस की आवश्यकता होगी, और एक वैध उपयोगकर्ता नाम और पासवर्ड होगा। आपको डेटाबेस के लिए सभी अनुमतियां भी होनी चाहिए। (कड़ाई से बोलने की आपको जरूरत नहीं है GRANT अनुमति है, लेकिन उन्हें केवल सभी को प्रदान करना आसान है।) आप इस आलेख में डेटाबेस अनुमतियों पर विवरण पा सकते हैं।

अपना डेटा पुनः आयात करने के लिए, इन चरणों का पालन करें:

  1. के साथ MySQL सर्वर में लॉग इन करें माई एसक्यूएल आदेश।
  2. प्रकार डेटाबेस नाम का प्रयोग करें तत्काल, डीबी के उचित नाम को प्रतिस्थापित करना।
  3. दर्ज स्रोत फ़ाइल नाम, आपके द्वारा पहले ली गई डंप फ़ाइल के नाम को प्रतिस्थापित कर रहा है।

जब आप समाप्त कर लेंगे, तो आपको संदेशों की एक लंबी सूची दिखाई देगी, यह नोट करते हुए कि SQL कथन निष्पादित हो रहे हैं। त्रुटियों के लिए नजर रखें, लेकिन यदि आपके पास सही अनुमतियां हैं, तो आपको ठीक होना चाहिए क्योंकि यह एक खाली डेटाबेस है।

एक बार प्रक्रिया पूरी होने के बाद, आपके पास अपने मूल डेटाबेस का डुप्लिकेट होगा। आप इसे एक और डंप करके और दो आउटपुट की तुलना करके सत्यापित कर सकते हैं। एक सभ्य पाठ संपादक आपके लिए यह करने में सक्षम होगा, या एक समर्पित * diff * उपकरण जैसा कि नीचे दी गई छवि में दिखाया गया है:

इन फ़ाइलों के बीच केवल दो अंतर हैं, जैसा कि दाएं स्क्रॉलबार के बहुत ऊपर और नीचे लाल रेखाओं द्वारा दर्शाया गया है। पहला वह लाइन है जिसमें डेटाबेस नाम होता है, और हम उम्मीद करते हैं कि यह अलग होना चाहिए क्योंकि हमने उन्हें अलग-अलग नाम दिया है। दूसरा, अंत में सभी तरह, डंप फ़ाइल के लिए टाइमस्टैम्प है। और हम यह भी अलग होने की उम्मीद करते हैं, क्योंकि हमने पहले डेटाबेस को पहले के बाद बनाया था। अन्यथा, फ़ाइलें बिल्कुल वही हैं, जिसका अर्थ है कि उन्हें उत्पन्न डेटाबेस भी हैं!