• mysqldump工具,工作的本质是什么呢?(dump表的时候,是否会产生drop表的语句)


    需求描述:

      今天在看mysqldump工具的使用过程,发现一个同事,是这样写的mysqldump命令

    mysqldump -uroot -pmysql employees titles | mysql -uroot -pmysql -D top_server

    思考:为啥要这么操作呢?所以,就做了个试验.

    操作过程:

    1.首先对mysqldump单独执行

    [mysql@redhat6 mysql_backup]$ mysqldump -uroot -pmysql employees titles | more
    -- MySQL dump 10.13  Distrib 5.5.57, for linux-glibc2.12 (x86_64)
    --
    -- Host: localhost    Database: employees
    -- ------------------------------------------------------
    -- Server version    5.5.57-log
    
    /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
    /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
    /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
    /*!40101 SET NAMES utf8 */;
    /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
    /*!40103 SET TIME_ZONE='+00:00' */;
    /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
    /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
    /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
    /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
    
    --
    -- Table structure for table `titles`
    --
    
    DROP TABLE IF EXISTS `titles`;
    /*!40101 SET @saved_cs_client     = @@character_set_client */;
    /*!40101 SET character_set_client = utf8 */;
    CREATE TABLE `titles` (
      `emp_no` int(11) NOT NULL,
      `title` varchar(50) NOT NULL,
      `from_date` date NOT NULL,
      `to_date` date DEFAULT NULL,
      PRIMARY KEY (`emp_no`,`title`,`from_date`),
      CONSTRAINT `titles_ibfk_1` FOREIGN KEY (`emp_no`) REFERENCES `employees` (`emp_no`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    /*!40101 SET character_set_client = @saved_cs_client */;
    
    --
    -- Dumping data for table `titles`

    备注:mysqldump就是进行逻辑备份,并且产生一系列的SQL语句.

    优化1:在mysqldump某个表的时候,是会产生,DROP表语句的.  --2018年6月1日11:07:23

    2.继续通过mysql客户端工具执行

     mysqldump -uroot -pmysql employees titles | mysql -uroot -pmysql -D top_server

    备注:发现已经将employess库下的titles表恢复到了top_server数据库下.

    优化1:恢复的过程,就是执行mysqldump出来的表的SQL语句,首先执行删除表的操作,然后创建表,导入数据.--2018年6月1日11:08:34

    3.所以对同事的那条命令的理解

    解释:就是将某个库下的表恢复到其他的数据库下,由于这个命令是每天都执行的,所以,可以理解是表的同步.

    小结:

      经过以上的测试理解了,无论怎样mysqldump就是产生一系列SQL语句,可以通过>转储到sql文件或者压缩文件都是可以.

      mysql客户端可以执行mysqldump产生的SQL文件.就是一个客户端工具而已.可以结合-h选项把数据表恢复到远程库下.

    文档创建时间:2018年4月11日17:31:56

  • 相关阅读:
    如何雇人的十五条建议
    如何通过预加载器提升网页加载速度
    提升代码内外部质量的22条经验
    敏捷团队的组织与管理--- MPD软件工作坊培训感想(下)
    敏捷开发的道与术---MPD软件工作坊培训感想(上)
    分享自制的C#和VB Code互转工具
    基于 WPF 平台的 ActiveReports Viewer控件
    在ASP.NET MVC 中使用ActiveReports报表控件
    根据数据源字段动态设置报表中的列数量以及列宽度
    在ActiveReports页面报表中显示Google地图
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/8797125.html
Copyright © 2020-2023  润新知