MySQL या MariaDB डेटाबेस को बैकअप और निर्यात करने का बेहतर तरीका सर्वर पर स्थानीय रूप से कार्य करना है, ताकि टेबल के डेटा को बिना किसी देरी के स्थानीय डिस्क पर तुरंत डंप किया जा सके। इस प्रकार निर्यात की गति तेज होगी और MySQL या MariaDB डेटाबेस या टेबल को एक्सेस करने के लिए लॉक होने का समय कम हो जाएगा। यह ट्यूटोरियल mysqldump का उपयोग करके डेटाबेस सर्वर पर ही MySQL या MariaDB डेटाबेस (डेटाबेस) का बैकअप (निर्यात) और पुनर्स्थापित (आयात) करने के बारे में गाइड है। और mysql उपयोगिताओं MySQL या MariaDB का बैकअप लेने के लिए मूल रूप से दो तरीके हैं, एक है सभी टेबल फ़ाइलों (*.frm, *.MYD, और *.MYI फ़ाइलें) को कॉपी करना या mysqlhotcopy का उपयोग करना। उपयोगिता, लेकिन यह केवल MyISAM तालिकाओं के लिए काम करती है। नीचे दिए गए ट्यूटोरियल में mysqldump पर ध्यान दिया जाएगा जो MyISAM और InnoDB टेबल दोनों के लिए काम करता है।
एक MySQL या MariaDB डेटाबेस को निर्यात या बैकअप या डंप कैसे करें
एक MySQL या MariaDB डेटाबेस को डंप फ़ाइल में निर्यात करने के लिए, बस शेल में निम्न कमांड सिंटैक्स टाइप करें। यदि आपके पास भौतिक बॉक्स तक पहुंच नहीं है, तो आप मशीन में दूरस्थ रूप से लॉगिन करने के लिए टेलनेट या एसएसएच का उपयोग कर सकते हैं।
mysqldump -u username -ppassword database_name > dump.sql
उपयोगकर्ता नाम बदलें एक मान्य MySQL या MariaDB उपयोगकर्ता आईडी के साथ, पासवर्ड उपयोगकर्ता के लिए मान्य पासवर्ड के साथ (महत्वपूर्ण:-p और पासवर्ड के बाद कोई स्थान नहीं, अन्यथा mysqldump आपको पासवर्ड के लिए संकेत देगा फिर भी पासवर्ड को डेटाबेस नाम के रूप में मानेगा, इसलिए बैकअप विफल हो जाएगा) और database_name उस डेटाबेस के वास्तविक नाम के साथ जिसे आप निर्यात करना चाहते हैं। अंत में, आप आउटपुट SQL डंप फ़ाइल के लिए जो भी नाम पसंद करते हैं उसे रख सकते हैं, यहाँ dump.sql दिया गया है ।
database_name . का संपूर्ण डेटा, टेबल, संरचना और डेटाबेस dump.sql . नामक SQL टेक्स्ट फ़ाइल में बैकअप लिया जाएगा उपरोक्त आदेश के साथ।
केवल एक MySQL या MariaDB डेटाबेस संरचना कैसे निर्यात करें
यदि आपको अब डेटाबेस की तालिकाओं के अंदर डेटा की आवश्यकता नहीं है (संभावना नहीं), तो बस –नो-डेटा जोड़ें केवल टेबल की संरचनाओं को निर्यात करने के लिए स्विच करें। उदाहरण के लिए, वाक्य रचना है:
mysqldump -u username -ppassword --no-data database_name > dump.sql
केवल MySQL या MariaDB डेटाबेस के डेटा का बैकअप कैसे लें
यदि आप केवल डेटा का बैकअप लेना चाहते हैं, तो –no-create-info . का उपयोग करें विकल्प। इस सेटिंग के साथ, डंप आयात करते समय डेटाबेस, टेबल, फ़ील्ड और अन्य संरचनाओं को फिर से नहीं बनाएगा। इसका उपयोग केवल तभी करें जब आपको पूरा यकीन हो कि आपके पास समान संरचना वाले डुप्लिकेट डेटाबेस हैं, जहां आपको केवल डेटा रीफ़्रेश करने की आवश्यकता है।
mysqldump -u username -ppassword --no-create-info database_name > dump.sql
कई MySQL या MariaDB डेटाबेस को टेक्स्ट फ़ाइल में कैसे डंप करें
–डेटाबेस विकल्प आपको 1 से अधिक डेटाबेस निर्दिष्ट करने की अनुमति देता है। उदाहरण वाक्य रचना:
mysqldump -u username -ppassword --databases db_name1 [db_name2 ...] > dump.sql
MySQL या MariaDB सर्वर में सभी डेटाबेस को कैसे डंप करें
सभी डेटाबेस को डंप करने के लिए, –ऑल-डेटाबेस . का उपयोग करें विकल्प, और अब किसी डेटाबेस के नाम को निर्दिष्ट करने की आवश्यकता नहीं है।
mysqldump -u username -ppassword --all-databases > dump.sql
InnoDB तालिकाओं का ऑनलाइन बैकअप कैसे लें
डेटाबेस का बैकअप अनिवार्य रूप से MySQL या MariaDB सर्वर अनुप्रयोगों के लिए अनुपलब्ध है क्योंकि निर्यात करते समय, सभी तालिकाओं ने डंप की शुरुआत में समाप्त होने तक फ्लश टेबल के साथ फ्लश टेबल का उपयोग करके वैश्विक रीड लॉक प्राप्त किया। इसलिए हालांकि READ स्टेटमेंट आगे बढ़ सकते हैं, सभी INSERT, UPDATE और DELETE स्टेटमेंट्स को लॉक टेबल के कारण कतार में लगना होगा, जैसे कि MySQL या MariaDB डाउन या ठप हो गया हो। यदि आप InnoDB का उपयोग कर रहे हैं, तो –एकल-लेनदेन इस लॉकिंग समय अवधि को लगभग न के बराबर करने का तरीका है जैसे कि कोई ऑनलाइन बैकअप कर रहा हो। यह बाइनरी लॉग कोऑर्डिनेट्स को पढ़कर काम करता है जैसे ही लॉक का अधिग्रहण किया जाता है, और फिर लॉक को तुरंत रिलीज़ कर दिया जाता है।
सिंटैक्स:
mysqldump -u username -ppassword --all-databases --single-transaction > dump.sql
MySQL या MariaDB डेटाबेस को पुनर्स्थापित और आयात कैसे करें
आप आयात टैब का उपयोग करके phpMyAdmin से पुनर्स्थापित कर सकते हैं। तेज़ तरीके से, डंप फ़ाइल को MySQL या MariaDB सर्वर पर अपलोड करें, और डेटाबेस को वापस MySQL या MariaDB सर्वर में आयात करने के लिए निम्न कमांड का उपयोग करें।
mysql -u username -ppassword database_name < dump.sqlयदि आप किसी अन्य सर्वर पर दूरस्थ रूप से MySQL या MariaDB सर्वर से कनेक्ट करना चाहते हैं, तो संलग्न करें -h सर्वर-नाम-या-आईपी-पता आदेश को।
MySQL या MariaDB डेटाबेस का आयात और निर्यात न केवल आपदा आने पर डेटा को पुनर्प्राप्त करने के लिए महत्वपूर्ण है, बल्कि वेब होस्टिंग प्रदाताओं को स्विच करते समय किसी अन्य सर्वर पर माइग्रेट या स्थानांतरित करने का एक आसान तरीका भी प्रदान करता है। हालाँकि, ध्यान दें कि एक सामान्य समस्या - वर्ण सेट एन्कोडिंग। यदि कुछ भी निर्दिष्ट नहीं है, तो mysqldump की नई रिलीज़ UTF8 को अपने डिफ़ॉल्ट वर्णसेट के रूप में उपयोग करती है, जबकि पुराने संस्करण (आमतौर पर 4.1 से पुराने) लैटिन 1 को डिफ़ॉल्ट वर्ण सेट के रूप में उपयोग करते हैं। यदि आप डेटाबेस वर्णसेट लैटिन 1 है और यूटीएफ 8 संयोजन में डंप करते हैं, तो डेटा समाप्त हो सकता है बस बकवास, विकृत, या अपठनीय (अक्सर वर्डप्रेस ब्लॉग के साथ होता है)। अगर ऐसा है, तो –डिफ़ॉल्ट-वर्ण-सेट=charset_name . का उपयोग करें कैरेक्टर सेट को निर्दिष्ट करने या डेटाबेस को UTF8 में बदलने का विकल्प।