Назад 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/uk/mysqldump.html