Windows के लिए MySQL डेटाबेस का बैकअप लें और पुनर्स्थापित करें
ऑपरेशन पुष्टिकरण वातावरण
- मायएसक्यूएल
-
- MySQL 8.0 सामुदायिक संस्करण
- विंडोज़
-
- विंडोज 11
आवश्यक वातावरण
- मायएसक्यूएल
-
- माईएसक्यूएल 8.0
- विंडोज़
-
- विंडोज 11
- विंडोज 10
- विंडोज सर्वर
-
- विंडोज सर्वर 2022
- विंडोज सर्वर 2019
- विंडोज सर्वर 2016
- विंडोज सर्वर 2012 R2
पूर्व शर्त
- MySQL डेटाबेस स्थापित होना चाहिए
- बैकअप लिए जाने वाले डेटाबेस पहले से मौजूद है
- पर्यावरण चर कॉन्फ़िगर करें और आपको कमांड प्रॉम्प्ट से MySQL चलाने की अनुमति दें
बैकअप प्रकारों के बारे में
मैं यहां विस्तार में नहीं जाऊंगा, लेकिन MySQL में निम्न प्रकार के बैकअप हैं:
बैकअप कमांड | बैकअप डेटा प्रकार | टिप्पणियां |
---|---|---|
mysqldump | तार्किक बैकअप | एक पुरानी बैकअप विधि। जीयूआई भी इसका उपयोग करता है |
mysqlpump | तार्किक बैकअप | Mysqldump का बेहतर संस्करण |
MySQL शेल इंस्टेंस डंप यूटिलिटी और डंप लोडिंग यूटिलिटी | तार्किक बैकअप | तार्किक बैकअप के रूप में, यह इस समय नवीनतम है |
Percona XtraBackup | भौतिक बैकअप | तृतीय-पक्ष उत्पाद जो भौतिक बैकअप की अनुमति देते हैं |
क्लोन प्लगइन | भौतिक बैकअप | MySQL आधिकारिक भौतिक बैकअप। हालाँकि, अतिरिक्त प्लगइन्स की आवश्यकता है |
एक GUI (MySQL कार्यक्षेत्र) के साथ डेटाबेस का बैकअप लेना
यदि आप कमांड का उपयोग किए बिना जीयूआई में सुरक्षित रूप से काम करना चाहते हैं, तो आप MySQL वर्कबेंच में बैकअप कर सकते हैं। MySQL Workbench में किया गया बैकअप प्रकार "mysqldump" है।
MySQL वर्कबेंच लॉन्च करें।
उस डेटाबेस के कनेक्शन का चयन करें जिसका आप बैकअप लेना चाहते हैं.
डेटाबेस का बैकअप लेने के साथ, बाईं ओर नेविगेटर से व्यवस्थापन टैब का चयन करें और डेटा निर्यात का चयन करें.
डेटा निर्यात स्क्रीन खुलती है। स्क्रीन काफी बड़ी है, इसलिए विंडो का विस्तार करें जब तक कि आप निचले दाएं कोने में "निर्यात प्रारंभ करें" बटन न देखें।
सबसे पहले, उस डेटाबेस का चयन करें जिसका आप बैकअप लेना चाहते हैं। आप एक से अधिक का चयन भी कर सकते हैं।
"ऑब्जेक्ट्स टू एक्सपोर्ट" में, आप चुन सकते हैं कि प्रक्रियाओं, ट्रिगर्स आदि का बैकअप लेना है या नहीं। यह आइटम वैकल्पिक है.
"निर्यात विकल्प" में, आप निम्नलिखित दो विकल्पों में से चुन सकते हैं:
का विवरणप्रकारों | |
---|---|
डंप प्रोजेक्ट फ़ोल्डर में निर्यात करें | किसी दिए गए फ़ोल्डर में तालिका या प्रक्रिया-दर-प्रक्रिया फ़ाइल के रूप में आउटपुट। |
स्व-निहित फ़ाइल में निर्यात करें | सब कुछ एक फ़ाइल में एम्बेड करें और इसे आउटपुट करें। |
इससे कोई फर्क नहीं पड़ता कि आप किसका आउटपुट करते हैं। यदि आप ऊपर चुनते हैं, तो यह आसान है क्योंकि यदि आप केवल एक विशिष्ट तालिका को पुनर्स्थापित करना चाहते हैं तो आप इसे आसानी से हटा सकते हैं। निम्नलिखित चयन एकल फ़ाइल में आउटपुट होते हैं, जिससे डेटाबेस इकाई के रूप में फ़ाइलों को स्थानांतरित करना और प्रबंधित करना आसान हो जाता है। इस बार मैंने निम्नलिखित का चयन किया है।
एक बार कॉन्फ़िगर हो जाने के बाद, क्लिक करें निर्यात शुरू निर्यात शुरू करना निर्यात शुरू करने के लिए नीचे दाईं ओर बटन।
निर्यात शुरू होता है और पूरा होता है।
यदि आप किसी एकल फ़ाइल में आउटपुट करते हैं, तो यह इस तरह दिखेगा:
यदि आप किसी फ़ोल्डर में निर्यात करते हैं, तो यह इस तरह दिखाई देगा:
एक GUI (MySQL कार्यक्षेत्र) के साथ एक डेटाबेस को पुनर्स्थापित करना
MySQL कार्यक्षेत्र खोलें, अपने कनेक्शन चुनें, बाईं ओर नेविगेटर से प्रशासन टैब चुनें, और डेटा आयात/पुनर्स्थापना चुनें। जैसा कि यह "आयात / पुनर्स्थापना" कहता है, आप निर्यात की गई फ़ाइल से एक नया डेटाबेस बना सकते हैं या मूल डेटाबेस को अधिलेखित कर सकते हैं।
विंडो का विस्तार करें जब तक कि आप निचले दाएं कोने में "आयात प्रारंभ करें" बटन न देखें।
कृपया निर्यात किए गए फ़ाइल स्वरूप के अनुसार "आयात विकल्प" चुनें। चूंकि मैंने इसे इस बार एकल फ़ाइल के रूप में निर्यात किया है, इसलिए मैंने नीचे "स्व-निहित फ़ाइल से आयात करें" का चयन किया है और निर्यात की गई फ़ाइल निर्दिष्ट की है।
पुनर्स्थापित करने के लिए स्कीमा (डेटाबेस) का चयन करें. आप किसी मौजूदा डेटाबेस को पुनर्स्थापित कर सकते हैं, या आप इसे दाईं ओर "नया" बटन से एक नए डेटाबेस के रूप में पुनर्स्थापित कर सकते हैं।
निर्दिष्ट करने के बाद, पुनर्प्राप्ति शुरू करने के लिए निचले दाएं कोने में "आयात प्रारंभ करें" बटन पर क्लिक करें।
सुनिश्चित करें कि पुनर्स्थापना पूर्ण होने पर आपका डेटा वापस आ गया है।
कमांड के माध्यम से डेटाबेस बैकअप के लिए एक खाता बनाएं
यदि आप एक बार बैकअप करने के लिए कमांड चलाना चाहते हैं तो कोई समस्या नहीं है, लेकिन उदाहरण के लिए, यदि आप पहले से फ़ाइल के रूप में कमांड तैयार करते हैं और इसे चलाते हैं, तो आपको पासवर्ड को सादे पाठ में लिखना होगा, इसलिए बैकअप चलाने के लिए एक अलग खाता बनाना सुरक्षित है।
बैकअप के लिए आवश्यक अनुमतियाँ निम्नानुसार हैं, लेकिन आवश्यक जानकारी के आधार पर बढ़ या घट सकती हैं।
- घटना
- लॉक टेबल
- चुनना
- दृश्य दिखाएँ
यदि आप इसे कमांड के साथ बनाते हैं, तो यह इस तरह दिखाई देगा: इसे MySQL कमांड-लाइन टूल के साथ चलाएं।
create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;
उदाहरण
create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;
बैकअप गंतव्य के लिए फ़ोल्डर अनुमतियाँ
उस फ़ोल्डर के लिए अनुमतियाँ जहाँ बैकअप फ़ाइल संग्रहीत है, आदेश निष्पादित करने की अनुमति के समान अनुमति पर सेट होनी चाहिए. यदि आप व्यवस्थापकों की अनुमति से आदेश चलाना चाहते हैं, तो आपको फ़ोल्डर के लिए कोई अतिरिक्त अनुमतियाँ सेट करने की आवश्यकता नहीं है.
कमांड के साथ डेटाबेस का बैकअप लेना (mysqldump)
कई कमांड बैकअप हैं, लेकिन इस बार मैं पुराने और स्थिर "mysqldump" के साथ बैकअप लूंगा।
स्टार्ट मेन्यू पर राइट-क्लिक करें और टर्मिनल (कमांड प्रॉम्प्ट) लॉन्च करें। कृपया ध्यान दें कि यह "MySQL 8.0 कमांड लाइन क्लाइंट" नहीं है।
आप निम्न कमांड के साथ इसका बैकअप ले सकते हैं:
mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"
उदाहरण
mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"
--default-character-set=utf8
जीयूआई में बैकअप लेने पर वही वर्ण कोड होगा। यह आपको उन्हें जीयूआई में भी आयात करने की अनुमति देता है।- पासवर्ड फ़ील्ड
-p
और पासवर्ड के बीच रिक्ति न रखें।- यदि आप टेबलस्पेस जानकारी भी आउटपुट करना चाहते हैं,
--no-tablespaces
तो कृपया अनचेक करें। उस स्थिति में, निष्पादन उपयोगकर्ता कीPROCESS
अनुमतियों की आवश्यकता होती है।
निर्दिष्ट स्थान पर एक बैकअप फ़ाइल बनाई जाएगी.
कमांड के साथ डेटाबेस को पुनर्स्थापित करना (mysqldump)
Mysqldump के साथ बैकअप की गई फाइलें एक प्रारूप में हैं जिन्हें SQL में चलाया जा सकता है, इसलिए आपको केवल लक्ष्य SQL चलाने की आवश्यकता है। मुझे लगता है कि पुनर्स्थापना अक्सर मैन्युअल रूप से की जाती है, इसलिए इसे रूट खाते पर चलाना ठीक है।
यदि आप इसे किसी आदेश से चलाना चाहते हैं, तो इसे PowerShell के बजाय कमांड प्रॉम्प्ट पर चलाएँ. ऐसा इसलिए है <
क्योंकि PowerShell प्रतीकों की अनुमति नहीं देता है।
निम्न आदेश चलाएँ:
mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>
उदाहरण
mysql -u root -ppassword test_database < C:\Temporary\Backup.sql
स्वचालित डेटाबेस बैकअप
विंडोज के लिए, टास्क शेड्यूलर का उपयोग करना आम है। बैच फ़ाइल बनाकर प्रारंभ करें। एक बैट फ़ाइल बनाएं, सामग्री दर्ज करें क्योंकि उन्हें कमांड के साथ बैकअप किया गया था, और उन्हें सहेजें। Shift-JIS के साथ वर्ण कोड सहेजें। बैच फ़ाइल का स्थान और फ़ाइल नाम मनमाना हो सकता है।
कार्य शेड्यूलर के साथ पंजीकरण करें। स्टार्ट मेन्यू पर राइट-क्लिक करें और "कंप्यूटर प्रबंधित करें" चुनें।
बाएँ मेनू से, कंप्यूटर प्रबंधन > सिस्टम उपकरण > कार्य शेड्यूलर > कार्य शेड्यूलर लाइब्रेरी का चयन करें। दाईं ओर मेनू से कार्य बनाएँ का चयन करें।
सामान्य टैब सेट करें। "नाम" कार्य सूची में प्रदर्शित किया जाएगा, इसलिए ऐसा नाम रखें जो समझने में आसान हो। सुरक्षा विकल्पों में, "चलाएं कि उपयोगकर्ता लॉग ऑन है या नहीं"।
ट्रिगर्स टैब सेट करता है कि बैकअप कब किया जाना चाहिए। यह सेटिंग आपके ऑपरेशन के अनुसार सेट की जानी चाहिए।
ऑपरेशन टैब में, उस बैच फ़ाइल को सेट करें जिसे आपने अभी लॉन्च करने के लिए बनाया है।
एक बार जब आप उनमें से प्रत्येक को सेट कर लेते हैं, तो ओके बटन से उनकी पुष्टि करें।
निर्दिष्ट खाते पर चलाने के लिए पंजीकरण करने के लिए अपना पासवर्ड दर्ज करें।
अब जांचें कि बैकअप निर्दिष्ट समय पर चलेगा या नहीं।