mysqldump导出数据时,某些表不导出,排除某些表,不导出某些表

Posted QA-3K

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysqldump导出数据时,某些表不导出,排除某些表,不导出某些表相关的知识,希望对你有一定的参考价值。

需求说明:

  今天一同事问,在通过mysqldump导出数据库的时候,能不能把某些表不导出,或者叫做排除在外呢,

  记得应该是可以实现,就搜索了下,通过mysqldump的--ignore-table参数能够实现,再次记录下。

操作过程:

1.查看某个库及其中的表的情况

mysql> use mytest
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;   #查看当前数据库中,所有的表的情况
+--------------------+
| Tables_in_mytest   |
+--------------------+
| sms_send_blacklist |
| td_b_sendobject    |
| test               |
| ti_o_sms           |
| ti_o_smsbak        |
+--------------------+
5 rows in set (0.00 sec)

2.通过mysqldump命令的--ignore-table选项,将ti_o_sms表排除在外

[[email protected] baks]$ mysqldump --databases mytest --ignore-table=mytest.ti_o_sms > mytest.sql
[[email protected] baks]$ ll
total 7112
-rw-rw-r--. 1 mysql mysql 7280800 Jan  3 20:27 mytest.sql

3.查看导出的dump文件中,是否包含ti_o_sms表

[[email protected] baks]$ grep "ti_o_sms" mytest.sql 
-- Table structure for table `ti_o_smsbak`
DROP TABLE IF EXISTS `ti_o_smsbak`;
CREATE TABLE `ti_o_smsbak` (
-- Dumping data for table `ti_o_smsbak`
LOCK TABLES `ti_o_smsbak` WRITE;
/*!40000 ALTER TABLE `ti_o_smsbak` DISABLE KEYS */;
/*!40000 ALTER TABLE `ti_o_smsbak` ENABLE KEYS */;

备注:没有看到ti_o_sms表的信息,看到的仅仅是ti_o_smsbak表的信息。

4.将多个表排除在外

[[email protected] baks]$ mysqldump --databases mytest --ignore-table=mytest.ti_o_sms --ignore-table=mytest.ti_o_smsbak > mytest02.sql
[[email protected] baks]$ ll
total 14220
-rw-rw-r--. 1 mysql mysql 7277128 Jan  3 20:29 mytest02.sql
-rw-rw-r--. 1 mysql mysql 7280800 Jan  3 20:27 mytest.sql

5.查看其中是否包括ti_o_sms和ti_o_smsbak表的信息

[[email protected] baks]$ grep -E "ti_o_sms|ti_o_smsbak" mytest02.sql 
[[email protected] baks]$ 

备注:通过以上的结果说明,2张表都已经被排除在外了。

 

mysqldump命令的--ignore-table参数的语法

--ignore-table=db_name.tbl_name

Do not dump the given table, which must be specified using both the database and table names. To ignore multiple tables, use this option multiple times. This option also can be used to ignore views.

解释

--ignore-table=数据库名.表名
该参数的作用是,对某些表不进行导出。等号后面的参数即表的信息,必须通过数据库和表名来定义。如果要忽略多张表,那么就要多次使用--ignore-table参数,比如--ignore-table=A.tabA --ignore-table=A.tabB.
同时,这个参数可以用来忽略视图的导出。

 

 

文档创建时间:2019年1月3日20:38:48

以上是关于mysqldump导出数据时,某些表不导出,排除某些表,不导出某些表的主要内容,如果未能解决你的问题,请参考以下文章

mysqldump 备份导出数据排除某张表或多张表

mysqldump备份数据库时排除某些库

导出数据表时排除/隐藏某些列

EXPDP导出表数据,排除某张表

mysqldump导入导出参数

mysqldump导出表结构及数据