फ़ाइलों को अलग करने के लिए MySQL तालिकाओं को स्वचालित रूप से डंप करें
अंतर्निहित mysqldump उपयोगिता चयनात्मक तालिका डंप की अनुमति देती है, लेकिन पूर्व-निर्दिष्ट तालिका नामों की आवश्यकता होती है . एक गतिशील दृष्टिकोण के लिए जो नई तालिका परिवर्धन को संभालता है, एक स्वचालित समाधान आवश्यक है।
ऐसा एक समाधान एक शेल स्क्रिप्ट है जो सभी तालिका नामों के लिए डेटाबेस से गतिशील रूप से पूछताछ करता है और प्रत्येक तालिका को एक अलग संपीड़ित फ़ाइल में डंप करता है। इससे डंप स्क्रिप्ट में मैन्युअल तालिका नाम रखरखाव की आवश्यकता समाप्त हो जाती है।
यहां एक नमूना स्क्रिप्ट है जो इस कार्यक्षमता को प्राप्त करती है:
#!/bin/bash
# Descr: Dump MySQL table data into separate SQL files for a specified database.
# Usage: Run without args for usage info.
# Author: @Trutane
[ $# -lt 3 ] && echo "Usage: $(basename $0) <DB_HOST> <DB_USER> <DB_NAME> [<DIR>]" && exit 1
DB_host=$1
DB_user=$2
DB=$3
DIR=${4:-.}
[ -d $DIR ] || mkdir -p $DIR
echo -n "DB password: "
read -s DB_pass
tbl_count=0
for t in $(mysql -NBA -h $DB_host -u $DB_user -p$DB_pass -D $DB -e 'show tables')
do
echo "DUMPING TABLE: $DB.$t"
mysqldump -h $DB_host -u $DB_user -p$DB_pass $DB $t | gzip > "$DIR/$DB.$t.sql.gz"
tbl_count=$(( tbl_count 1 ))
done
echo "$tbl_count tables dumped from database '$DB' into dir=$DIR"
यह स्क्रिप्ट डेटाबेस पासवर्ड के लिए संकेत देती है, तालिका नामों के लिए निर्दिष्ट डेटाबेस पर सवाल उठाती है, और प्रत्येक तालिका के डेटा को SQL कमांड के रूप में अलग-अलग डंप करती है निर्दिष्ट निर्देशिका (या डिफ़ॉल्ट रूप से वर्तमान कार्यशील निर्देशिका) के भीतर संपीड़ित फ़ाइलें।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3