0

mysqldump 怎样不导出某个表数据?

erica created at6 years ago view count: 2425

某个表数据太大, 备份的时候不想备份该表, 怎样不导出某个表数据?

report
回复
0

--ignore-table指定不导出表的名称

mysqldump -u username -p database --ignore-table=database.table1 > database.sql

如果是不导出多个表,则使用下面的SHELL脚本。

#!/bin/bash
PASSWORD=XXXXXX
HOST=XXXXXX
USER=XXXXXX
DATABASE=databasename
DB_FILE=dump.sql
EXCLUDED_TABLES=(
table1
table2
table3
table4
tableN   
)

IGNORED_TABLES_STRING=''
for TABLE in "${EXCLUDED_TABLES[@]}"
do :
   IGNORED_TABLES_STRING+=" --ignore-table=${DATABASE}.${TABLE}"
done

echo "导出表结构定义"
mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} --single-transaction --no-data ${DATABASE} > ${DB_FILE}

echo "导出数据"
mysqldump --host=${HOST} --user=${USER} --password=${PASSWORD} ${DATABASE} --no-create-info ${IGNORED_TABLES_STRING} >> ${DB_FILE}
6 years ago 回复