• 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表排除在外

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

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

    [mysql@testvm01 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.将多个表排除在外

    [mysql@testvm01 baks]$ mysqldump --databases mytest --ignore-table=mytest.ti_o_sms --ignore-table=mytest.ti_o_smsbak > mytest02.sql
    [mysql@testvm01 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表的信息

    [mysql@testvm01 baks]$ grep -E "ti_o_sms|ti_o_smsbak" mytest02.sql 
    [mysql@testvm01 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

  • 相关阅读:
    Django之信号
    Git协同开发操作+GitHub
    Django之auth组件
    Django之contenttyes组件
    Django之缓存
    Django之请求数据格式
    Django REST framework之渲染器组件以及阅读源码流程
    DJango REST framework之分页组件以及对源码的阅读
    Django REST framework之视图路由组件以及分层分析
    Leetcode103. Binary Tree Zigzag Level Order Traversal二叉树的锯齿形层次遍历
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/10216751.html
Copyright © 2020-2023  润新知