MySQL डेटाबेस का बैकअप और पुनर्स्थापन (Restore) कैसे करें
यदि आप MySQL डेटाबेस में डेटा संग्रहीत करते हैं और उन्हें खोना नहीं चाहते, तो आपको नियमित रूप से बैकअप लेना आवश्यक है। यह लेख आपको सिखाएगा कि कंसोल के माध्यम से तेजी से MySQL डेटाबेस का बैकअप कैसे बनाएं और उसे कैसे पुनर्स्थापित करें। साथ ही, आप डेटा को दूसरे सर्वर पर भी स्थानांतरित कर सकेंगे।
- कमांड लाइन के माध्यम से बैकअप कैसे बनाएं (mysqldump का उपयोग करते हुए)
- संपीड़न (compression) के साथ MySQL डेटाबेस का बैकअप कैसे बनाएं
- बैकअप से MySQL डेटाबेस को कैसे पुनर्स्थापित करें
- Adminer के माध्यम से बैकअप और पुनर्स्थापना
कमांड लाइन के माध्यम से बैकअप कैसे बनाएं (mysqldump का उपयोग करते हुए)
यदि आपके पास SSH के माध्यम से सर्वर तक पहुँच है, तो आप जल्दी से बैकअप बना सकते हैं और उन्हें पुनः लागू कर सकते हैं। यह विधि phpMyAdmin या Adminer की तुलना में तेज़ है क्योंकि यह सीधे SQL कमांड्स के रूप में डेटाबेस डंप बनाती है। “डंप” का अर्थ है आपके डेटाबेस की टेक्स्ट फ़ाइल जिसमें उसकी संरचना और डेटा SQL कमांड्स के रूप में शामिल होते हैं। बैकअप बनाने की मूल कमांड इस प्रकार है:
$ mysqldump --opt -u [uname] -p[pass] [dbname] > [backupfile.sql]
[uname] — डेटाबेस उपयोगकर्ता नाम (अक्सर root)
[pass] — उपयोगकर्ता का पासवर्ड। यदि पासवर्ड में विशेष चिह्न नहीं हैं, तो आप इसे बिना स्पेस के जोड़ सकते हैं, जैसे -proot
या -ppassword
।
[dbname] — आपका डेटाबेस नाम।
[backupfile.sql] — वह फ़ाइल नाम जहाँ बैकअप सहेजा जाएगा।
[--opt] — mysqldump के लिए वैकल्पिक पैरामीटर, जिसे छोड़ा भी जा सकता है।
उदाहरण के लिए, यदि आपके पास Drupal डेटाबेस है, उपयोगकर्ता root है, पासवर्ड password है, और आप बैकअप को backup.sql
नाम से सहेजना चाहते हैं, तो कमांड इस प्रकार होगी:
$ mysqldump -u root -ppassword DrupalDB > backup.sql
यदि आप पासवर्ड को मैन्युअली दर्ज करना चाहते हैं या उसमें विशेष प्रतीक (जैसे #!,-_) हैं, तो कमांड इस प्रकार होगी:
$ mysqldump -u root -p DrupalDB > backup.sql
आप केवल कुछ विशिष्ट तालिकाओं का बैकअप भी बना सकते हैं। उदाहरण के लिए, केवल nodes
और users
तालिकाओं के लिए:
$ mysqldump -u root -p DrupalDB nodes users > backup.sql
आप एक साथ कई डेटाबेस का बैकअप भी बना सकते हैं, इसके लिए --databases
पैरामीटर का उपयोग करें:
$ mysqldump -u root -p --databases DrupalDB Drupal7 Drupal8 > backup.sql
यदि आप पूरे MySQL सर्वर को स्थानांतरित करना चाहते हैं, तो आप सभी डेटाबेस को एक साथ कॉपी कर सकते हैं:
$ mysqldump -u root -p --all-databases > alldb_backup.sql
mysqldump कमांड के कुछ उपयोगी विकल्प:
--add-drop-table — डंप फ़ाइल में DROP TABLE
कमांड जोड़ता है ताकि पुनर्स्थापन से पहले पुरानी तालिकाएँ हटाई जा सकें।
--no-data — केवल तालिका संरचना का बैकअप बनाता है, डेटा का नहीं। उदाहरण के लिए, Drupal में बड़ी cache तालिकाओं को छोड़ने के लिए यह उपयोगी है।
--add-lock — तालिकाओं को लॉक करने के लिए LOCK TABLES
और UNLOCK TABLES
कमांड जोड़ता है। बड़े डेटाबेस के लिए यह प्रक्रिया समय ले सकती है।
संपीड़न (compression) के साथ MySQL डेटाबेस का बैकअप कैसे बनाएं
यह सबसे उपयुक्त विकल्प है क्योंकि gzip से फ़ाइल का आकार 10–20 गुना तक छोटा किया जा सकता है। बड़े डेटाबेस का बैकअप भी छोटा और प्रबंधनीय हो जाता है। इसके लिए हम gzip कमांड का उपयोग करते हैं:
$ mysqldump -u root -p DrupalDB | gzip -9 > backup.sql.gz
यदि आप बैकअप को पुनर्स्थापित नहीं बल्कि केवल अनज़िप करना चाहते हैं, तो यह कमांड उपयोग करें:
$ gunzip backup.sql.gz
बैकअप से MySQL डेटाबेस को कैसे पुनर्स्थापित करें
डंप से डेटाबेस पुनर्स्थापित करने के लिए आपके पास एक खाली डेटाबेस होना चाहिए। आप phpMyAdmin या Adminer के माध्यम से तालिकाएँ हटा सकते हैं। यदि आपने --add-drop-table
विकल्प का उपयोग किया था, तो पुरानी तालिकाएँ स्वतः हट जाएँगी। पुनर्स्थापना के लिए कमांड इस प्रकार है:
$ mysql -u root -p DrupalDB < backup.sql
यदि आपका बैकअप gzip के साथ संपीड़ित है, तो इस कमांड का उपयोग करें:
gunzip < backup.sql.gz | mysql -u root -p DrupalDB
Adminer (PhpMyAdmin का विकल्प) के माध्यम से बैकअप और पुनर्स्थापना
Adminer — PhpMyAdmin का एक हल्का विकल्प है। यह समान कार्यक्षमता प्रदान करता है लेकिन केवल एक छोटी PHP फ़ाइल से बना होता है, जो इसे बहुत सुविधाजनक बनाता है।
बस फ़ाइल को अपनी वेबसाइट की रूट डायरेक्टरी में कॉपी करें और ब्राउज़र के माध्यम से एक्सेस करें:
http://आपकी_साइट/adminer-4.2.1.php (सुविधा के लिए इसे adminer.php
नाम दे सकते हैं)।
अब लॉगिन करें और अपनी आवश्यक डेटाबेस चुनें, जैसे Drupal7।
फिर “Export (Dump)” पर क्लिक करें और डेटा डाउनलोड करें। आप अनावश्यक cache तालिकाओं को निर्यात से बाहर भी रख सकते हैं:
बैकअप को पुनर्स्थापित करने के लिए “Import” टैब का उपयोग करें: