Mysqldump कमांड लाइन उपयोगिता का उपयोग करके mysql डेटाबेस का पूरा बैकअप कैसे लें




backup complete (5)

मैं mysqldump का उपयोग करके mysql डेटाबेस का पूर्ण बैकअप कैसे बना सकता हूं? जब मैं बैकअप बना रहा होता हूं, तो निर्दिष्ट डेटाबेस से मेरे टेबल केवल बैकअप ले रहे होते हैं। कार्यविधियाँ और कार्य नहीं हैं।

यहाँ बैकअप कमांड का उपयोग कर रहा हूँ:
(ऑपरेटिंग सिस्टम विंडोज विस्टा है।)

mysqldump -u username -p db1 > backup.sql

- -routines ध्वज के अलावा आपको संग्रहीत प्रक्रियाओं को पढ़ने के लिए बैकअप उपयोगकर्ता अनुमतियाँ प्रदान करने की आवश्यकता होगी:

GRANT SELECT ON `mysql`.`proc` TO <backup user>@<backup host>;

बैकअप उपयोगकर्ता के लिए GRANT विशेषाधिकारों का मेरा न्यूनतम सेट है:

GRANT USAGE ON *.* TO ...
GRANT SELECT, LOCK TABLES ON <target_db>.* TO ...
GRANT SELECT ON `mysql`.`proc` TO ...

इन आदेशों का उपयोग करें: -

mysqldump <other mysqldump options> --routines > outputfile.sql

यदि हम केवल संग्रहीत कार्यविधियों और ट्रिगर्स का बैकअप लेना चाहते हैं न कि mysql के तालिकाओं और डेटा का तो हमें कुछ इस तरह चलाना चाहिए:

mysqldump --routines --no-create-info --no-data --no-create-db --skip-opt <database> > outputfile.sql

यदि आपको उन्हें किसी अन्य db / सर्वर पर आयात करने की आवश्यकता है, तो आपको कुछ इस तरह चलाना होगा:

mysql <database> < outputfile.sql

मैं MySQL 5.5.40 का उपयोग कर रहा हूं। इस संस्करण में विकल्प --all-databases

mysqldump -u<username> -p<password> --all-databases --events > /tmp/all_databases__`date +%d_%b_%Y_%H_%M_%S`.sql

यह कमांड MySQL सर्वर में वर्तमान डेट-टाइम के नाम से फाइल करने के लिए सभी डेटाबेस का पूर्ण बैकअप बनाएगी।


यदि आप पूर्ण बैकअप लेना चाहते हैं, तो बिना किसी कनेक्शन को बाधित किए, सभी डेटाबेस, प्रक्रियाओं, दिनचर्या और घटनाओं को:

mysqldump -u [username] -p -A -R -E --triggers --single-transaction > full_backup.sql
  1. -A डेटाबेस के लिए (आप --all-databases का भी उपयोग कर सकते हैं)
  2. सभी रूटीन के लिए -R (संग्रहीत कार्यविधियाँ और ट्रिगर)
  3. -E घटनाओं के लिए
  4. --single-transaction बिना तालिकाओं को बंद किए अर्थात बिना किसी कनेक्शन (R / W) को बाधित किए।

यदि आप केवल निर्दिष्ट डेटाबेस का बैकअप लेना चाहते हैं:

mysqldump -u [username] -p [database_name] [other_database_name] -R -e --triggers --single-transaction > database_backup.sql

यदि आप किसी डेटाबेस में केवल एक विशिष्ट तालिका का बैकअप लेना चाहते हैं:

mysqldump -u [username] -p [database_name] [table_name] > table_backup.sql

यदि आप डेटाबेस संरचना का केवल एक बैकअप लेना चाहते हैं तो पिछले कमांड में केवल --no-data जोड़ें:

mysqldump -u [username] p[password] –-no-data [database_name] > dump_file.sql

mysqldump पास और भी कई विकल्प हैं, जो सभी mysqldump प्रलेखन में या कमांड लाइन पर man mysqldump चलाकर man mysqldump गए हैं।


MySQL 5.7 पर मेरे लिए इसका काम, मैं CentOS7 का उपयोग कर रहा हूं।

डंप लेने के लिए।

आदेश:

mysqldump -u user_name -p database_name -R -E > file_name.sql

छूट:

mysqldump -u root -p mr_sbc_clean -R -E > mr_sbc_clean_dump.sql

डंप की तैनाती के लिए।

आदेश:

mysql -u user_name -p database_name < file_name.sql

छूट:

mysql -u root -p mr_sbc_clean_new < mr_sbc_clean_dump.sql




complete