16 Aralık 2011 tarihinde, soruyu cevapladım. Belirli masaları nasıl yazabilirim?
Belirli bir tablo adı kümesi içermeyen tüm tabloları topladım.
Aynı ilkeleri kullanarak, tüm veritabanı adlarını information_schema.schemata
mysqldump'd istediğiniz meta veri tablosundan toplayabilir , bu listeyi döndürmek için bir sorgu oluşturabilir, ardından mysqldump komutunu formüle etmek için bu veritabanı listesini kullanabilirsiniz.
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
Yapmanız gereken tek şey mysqldump'd istemediğiniz veritabanlarını koymak DATABASES_TO_EXCLUDE
Bir şans ver !!!
information_schema
Zaten terkedilmediğini dışlamaya gerek yok .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