Kembali pada 16 Des 2011, saya menjawab pertanyaan Bagaimana Anda tabel spesifik mysqldump?
Saya mengumpulkan semua tabel tidak termasuk satu set nama tabel tertentu.
Menggunakan prinsip yang sama, Anda bisa mengumpulkan semua nama database dari tabel metadata information_schema.schemata
yang Anda inginkan mysqldump'd, membuat kueri untuk mengembalikan daftar itu, lalu menggunakan daftar database itu untuk merumuskan perintah 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
Yang perlu Anda lakukan adalah memasukkan basis data yang tidak Anda inginkan ke mysqldump DATABASES_TO_EXCLUDE
Cobalah !!!
information_schema
itu tidak dibuang.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