有没有办法限制mysqldump命令中的某些表
例如,我将使用以下语法仅转储表1和表2:
mysqldump-u username-p数据库表1表2>;database.sql
但是除了表1和表2之外,是否有类似的方法来转储所有表?我在mysqldump文档中没有找到任何内容,那么暴力(指定所有表名)是唯一的方法吗
您可以使用–ignore table选项。所以你可以
mysqldump-u USERNAME-pPASSWORD数据库–ignore table=DATABASE.table1>;database.sql
-p后没有空格(这不是打字错误)
若要忽略多个表,请多次使用此选项,至少从5.0版开始,此选项就可以正常工作
如果您想要一种替代方法来忽略多个表,可以使用如下脚本:
#/bin/bash
密码=XXXXXX
主机=XXXXXX
用户=XXXXXX
数据库=数据库名称
DB_FILE=dump.sql
排除表=(
表1
表2
表3
表4
表
)
已忽略\u表\u字符串=“”
对于“中的表”${排除在外的表[@]}”;
做:
忽略“U表”U字符串+=”--忽略表=${DATABASE}.${table}";
完成
“回声”;“垃圾场结构”;
mysqldump--host=${host}--user=${user}--password=${password}--单个事务--无数据--例程${DATABASE}>${DB_文件}
“回声”;“转储内容”;
mysqldump--host=${host}--user=${user}--password=${password}${DATABASE}--no create info--skip触发器${IGNORED\u TABLES\u STRING}>&燃气轮机${DB_文件}