MySQL-mysql 使用mysqldump 导出数据库时,如何忽略指定表的数据?
例如:mysqldump -uxxx -p xxx --ignore-table=test.t --ignore-table=test.t1 …… >test.sql;
上边是忽略导出指定的表,但是我想忽略这几个表的数据,但是表结构还是要,如果不多次导出,那该如何实现呢?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你可以把每个表加个字段把不想要数据的表这个字段设成1,其他表这个字段设成2,然后用--where过滤就可以了。
之前的答案已经可以解决问题了,这里贴出来一个比较详细的使用文档,供参考。
部分文字来源于这里:http://vod.sjtu.edu.cn/help/Article_Show.asp?ArticleID=1551
导出要用到MySQL的mysqldump工具,基本用法是:
shell> mysqldump [OPTIONS] database [tables]
如果你不给定任何表,整个数据库将被导出。
通过执行mysqldump --help,你能得到你mysqldump的版本支持的选项表。
注意,如果你运行mysqldump没有--quick或--opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。
mysqldump支持下列选项:
几个常用用例:
1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
-d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table
4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p
mysql>use 数据库
然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:wcnc_db.sql
可以运行两条命令,可以一起运行。
首先导出表结构:
mysqldump -uxxx -p --no-data db_name > test.sql
然后导出你要的数据:
mysqldump -uxxx -p dbname --ignore-table=test.t --ignore-table=test.t1 ...>>test.sql;
--ignore-table=xx “=” 左右不能有空格。