Вернувшись 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