16 दिसंबर, 2011 को वापस, मैंने इस सवाल का जवाब दिया कि आप mysqldump की विशिष्ट तालिका कैसे हैं?
मैंने सभी तालिकाएँ एकत्र कीं जिनमें तालिका नामों का एक निश्चित सेट शामिल नहीं है।
उसी सिद्धांतों का उपयोग करते हुए, आप मेटाडेटा तालिका से सभी डेटाबेस नाम एकत्र कर सकते हैं information_schema.schemata
जो आप mysqldump'd चाहते हैं, उस सूची को वापस करने के लिए एक क्वेरी बनाएं, फिर डेटाबेस की उस सूची का उपयोग करके mysqldump कमांड तैयार करें।
DATABASES_TO_EXCLUDE="db1 db2 db3"
EXCLUSION_LIST="'information_schema','mysql'"
for DB in `echo "${DATABASES_TO_EXCLUDE}"`
do
EXCLUSION_LIST="${EXCLUSION_LIST},'${DB}'"
done
SQLSTMT="SELECT schema_name FROM information_schema.schemata"
SQLSTMT="${SQLSTMT} WHERE schema_name NOT IN (${EXCLUSION_LIST})"
MYSQLDUMP_DATABASES="--databases"
for DB in `mysql -ANe"${SQLSTMT}"`
do
MYSQLDUMP_DATABASES="${MYSQLDUMP_DATABASES} ${DB}"
done
MYSQLDUMP_OPTIONS="--routines --triggers"
mysqldump ${MYSQLDUMP_OPTIONS} ${MYSQLDUMP_DATABASES} > MySQLDatabases.sql
तुम सब करने की ज़रूरत है डेटाबेस आप mysqldump'd में नहीं चाहते डाल दिया है DATABASES_TO_EXCLUDE
कोशिश तो करो !!!
information_schema
इसे बाहर करने की कोई आवश्यकता नहीं है, इसे वैसे भी डंप नहीं किया जा रहा है।mysqldump does not dump the INFORMATION_SCHEMA or performance_schema database by default. To dump either of these, name it explicitly on the command line and also use the --skip-lock-tables option. You can also name them with the --databases option. Before MySQL 5.5 mysqldump silently ignores INFORMATION_SCHEMA even if you name it explicitly on the command line.
dev.mysql.com/doc/refman/5.5/en/mysqldump.html