एंड्रॉयड

Mysqldump के साथ mysql डेटाबेस का बैकअप और पुनर्स्थापना कैसे करें

एक बार में सभी MySQL डेटाबेस निर्यात | SQLyog

एक बार में सभी MySQL डेटाबेस निर्यात | SQLyog

विषयसूची:

Anonim

यह ट्यूटोरियल बताता है कि mysqldump उपयोगिता का उपयोग करके कमांड लाइन से MySQL या MariaDB डेटाबेस को कैसे बैकअप और पुनर्स्थापित किया जाए।

Mysqldump उपयोगिता द्वारा बनाई गई बैकअप फाइलें मूल रूप से SQL कथनों का एक सेट हैं जिनका उपयोग मूल डेटाबेस को फिर से बनाने के लिए किया जा सकता है। Mysqldump कमांड CSV और XML फॉर्मेट में फाइलें भी जनरेट कर सकती है।

आप अपने MySQL डेटाबेस को किसी अन्य MySQL सर्वर में स्थानांतरित करने के लिए mysqldump उपयोगिता का उपयोग कर सकते हैं।

मैसकल्डम्प कमांड सिंटेक्स

Mysqldump कमांड का उपयोग करने के तरीके में जाने से पहले, आइए मूल सिंटैक्स की समीक्षा करके शुरू करें।

Mysqldump उपयोगिता अभिव्यक्तियाँ निम्न रूप लेती हैं:

mysqldump > file.sql

  • options - mysqldump विकल्प file.sql - डंप (बैकअप) फ़ाइल

Mysqldump कमांड का उपयोग करने के लिए MySQL सर्वर सुलभ और चालू होना चाहिए।

एक सिंगल MySQL डाटाबेस का बैकअप लें

Mysqldump टूल का सबसे आम उपयोग एकल डेटाबेस बैकअप के लिए है।

उदाहरण के लिए, उपयोगकर्ता root का उपयोग कर डेटाबेस_नाम नामक database_name का एक बैकअप बनाने के लिए और इसे डेटाबेस_नाम.सकल नाम की फ़ाइल में सहेजने के लिए आप निम्न कमांड चलाएंगे:

mysqldump -u root -p database_name > database_name.sql

आपको रूट पासवर्ड दर्ज करने के लिए प्रेरित किया जाएगा। सफल प्रमाणीकरण के बाद, डंप प्रक्रिया शुरू हो जाएगी। डेटाबेस आकार के आधार पर, प्रक्रिया में कुछ समय लग सकता है।

mysqldump database_name > database_name.sql

बैकअप एकाधिक MySQL डेटाबेस

एक कमांड के साथ कई MySQL डेटाबेस का बैकअप लेने के लिए आपको --database विकल्प का उपयोग करने की आवश्यकता --database है, उसके बाद आप जिन डेटाबेस का बैकअप लेना चाहते हैं उनकी सूची। प्रत्येक डेटाबेस नाम को अंतरिक्ष से अलग किया जाना चाहिए।

mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql

ऊपर दिया गया कमांड दोनों डेटाबेस में डंप फ़ाइल बनाएगा।

बैकअप सभी MySQL डेटाबेस

सभी MySQL डेटाबेस का बैकअप लेने के लिए --all-databases विकल्प का उपयोग करें:

mysqldump -u root -p --all-databases > all_databases.sql

पिछले उदाहरण के समान ही ऊपर दिए गए कमांड से सभी डेटाबेस में एक सिंगल डंप फ़ाइल बनेगी।

फ़ाइलों को अलग करने के लिए सभी MySQL डेटाबेस का बैकअप लें

mysqldump उपयोगिता अलग-अलग फ़ाइलों के लिए सभी डेटाबेस का बैकअप लेने का विकल्प प्रदान नहीं करती है, लेकिन हम आसानी से लूप के FOR एक साधारण बैश के साथ इसे प्राप्त करते हैं:

for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done

ऊपर दिया गया कमांड डेटाबेस के नाम के साथ फाइलनाम के रूप में प्रत्येक डेटाबेस के लिए एक अलग डंप फाइल बनाएगा।

एक संकुचित MySQL डाटाबेस बैकअप बनाएँ

यदि डेटाबेस का आकार बहुत बड़ा है तो आउटपुट को संपीड़ित करना एक अच्छा विचार है। ऐसा करने के लिए बस आउटपुट को gzip उपयोगिता में पाइप करें, और इसे नीचे दिखाए गए अनुसार फ़ाइल में रीडायरेक्ट करें:

mysqldump database_name | gzip > database_name.sql.gz

टाइमस्टैम्प के साथ एक बैकअप बनाएँ

mysqldump database_name > database_name-$(date +%Y%m%d).sql

ऊपर दिया गया कमांड निम्नलिखित फॉर्मेट के साथ एक फाइल बनाएगा database_name-20180617.sql

MySQL डंप को पुनर्स्थापित करना

आप mysql टूल का उपयोग करके MySQL डंप को पुनर्स्थापित कर सकते हैं। कमांड जनरल सिंटैक्स निम्नानुसार है:

mysqld database_name < file.sql

ज्यादातर मामलों में आपको आयात करने के लिए एक डेटाबेस बनाने की आवश्यकता होगी। यदि डेटाबेस पहले से मौजूद है, तो पहले आपको इसे हटाने की आवश्यकता है।

निम्नलिखित उदाहरण में पहला कमांड database_name नामक एक डेटाबेस बनाएगा और फिर यह डंप डेटाबेस_ database_name.sql को इसमें आयात करेगा:

mysql -u root -p -e "create database database_name"; mysql -u root -p database_name < database_name.sql

एक पूर्ण MySQL डंप से एक एकल MySQL डेटाबेस को पुनर्स्थापित करें

mysql --one-database database_name < all_databases.sql

एक कमांड में MySQL डेटाबेस को निर्यात और आयात करें

एक डेटाबेस से एक डंप फ़ाइल बनाने के बजाय और फिर एक और MySQL डेटाबेस में बैकअप आयात करें आप निम्नलिखित एक-लाइनर का उपयोग कर सकते हैं:

mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name

उपरोक्त कमांड रिमोट होस्ट पर एक mysql क्लाइंट को आउटपुट देगा और यह remote_database_name database_name नामक डेटाबेस में आयात करेगा। कमांड चलाने से पहले, सुनिश्चित करें कि डेटाबेस रिमोट सर्वर पर पहले से मौजूद है।

क्रोन के साथ स्वचालित बैकअप

डेटाबेस का बैकअप लेने की प्रक्रिया को स्वचालित करना उतना ही सरल है जितना कि क्रोन जॉब का निर्माण करना जो निर्दिष्ट समय पर mysqldump कमांड को चलाएगा।

क्रोनजोब का उपयोग करके MySQL डेटाबेस के स्वचालित बैकअप सेट करने के लिए, नीचे दिए गए चरणों का पालन करें:

  1. अपने उपयोगकर्ता होम निर्देशिका में .my.cnf नामक एक फ़ाइल बनाएँ:

    sudo nano ~/.my.cnf

    .My.cnf फ़ाइल में निम्न पाठ को कॉपी और पेस्ट करें।

    user = dbuser password = dbpasswd

    डेटाबेस उपयोगकर्ता और उपयोगकर्ता के पासवर्ड के साथ dbuser और dbpasswd को बदलना न भूलें।

    क्रेडेंशियल फ़ाइल की अनुमतियों को प्रतिबंधित करें ताकि केवल आपके उपयोगकर्ता के पास इसका उपयोग हो:

    chmod 600 ~/.my.cnf

    बैकअप स्टोर करने के लिए एक निर्देशिका बनाएँ:

    mkdir ~/db_backups

    अपनी उपयोगकर्ता crontab फ़ाइल खोलें:

    crontab -e

    निम्नलिखित क्रॉन जॉब जोड़ें जो हर दिन 3 बजे डेटाबेस नाम mydb का बैकअप बनाएगा:

    0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql

    अपने वास्तविक उपयोगकर्ता नाम के साथ उपयोगकर्ता नाम बदलना न भूलें।

30 दिनों से पुराने किसी भी बैकअप को हटाने के लिए आप एक और क्रोनजॉब भी बना सकते हैं:

find /path/to/backups -type f -name "*.sql" -mtime +30 -delete

बेशक, आपको अपने बैकअप स्थान और फ़ाइल नामों के अनुसार कमांड को समायोजित करने की आवश्यकता है। खोज कमांड के बारे में अधिक जानने के लिए कमांड लाइन गाइड का उपयोग करके लिनक्स में फाइल्स का पता लगाएं।

निष्कर्ष

यह ट्यूटोरियल केवल मूल बातें शामिल करता है, लेकिन यह उन लोगों के लिए एक अच्छी शुरुआत होनी चाहिए, जो mysqldump उपयोगिता का उपयोग करके कमांड लाइन से MySQL डेटाबेस बनाना और पुनर्स्थापित करना सीखना चाहते हैं।

यदि आप इसे भूल गए हैं, तो आप MySQL रूट पासवर्ड को रीसेट करने के तरीके के बारे में भी ट्यूटोरियल देख सकते हैं।

mysql mariadb बैकअप mysqldump