ย้อนกลับไปวันที่ 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 ใส่เข้าไป 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