zoukankan      html  css  js  c++  java
  • mysql数据库使用mysqldump工具针对一个数据库备份,使用--databases选项与不使用该参数的区别

    需求描述:

      今天在做mysqldump备份某个数据库的试验,在备份某个数据库的时候可以使用

      --databases参数,也可以直接进行某个数据库的备份,那么这里记录下两者的区别

    操作过程:

    1.使用--databases参数进行某个数据库的备份

    [mysql@redhat6 MysqlDb_Backup]$ mysqldump -uroot -p --single-transaction --master-data --flush-logs --databases top_server > FullBackup_top_server_2018-04-09.sql
    Enter password:

    2.不使用--databases选项进行一个数据库的备份

    [mysql@redhat6 MysqlDb_Backup]$ mysqldump -uroot -p --single-transaction --master-data --flush-logs top_server > FullBackup_top_server_2018-04-09_NoOption.sql
    Enter password: 

    3.查看生成备份SQL文件有什么区别

    使用--databases选项的SQL备份文件开头:

    -- MySQL dump 10.13  Distrib 5.5.57, for linux-glibc2.12 (x86_64)
    --
    -- Host: localhost    Database: top_server
    -- ------------------------------------------------------
    -- 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 */;

    --
    -- Position to start replication or point-in-time recovery from
    --

    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000015', MASTER_LOG_POS=107;

    --
    -- Current Database: `top_server`
    --

    CREATE DATABASE /*!32312 IF NOT EXISTS*/ `top_server` /*!40100 DEFAULT CHARACTER SET latin1 */;

    USE `top_server`;

    --
    -- Table structure for table `dept`
    --

    不使用--databases选项的备份SQL文件

    -- MySQL dump 10.13  Distrib 5.5.57, for linux-glibc2.12 (x86_64)
    --
    -- Host: localhost    Database: top_server
    -- ------------------------------------------------------
    -- 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 */;
    
    --
    -- Position to start replication or point-in-time recovery from
    --
    
    CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000014', MASTER_LOG_POS=107;
    
    --
    -- Table structure for table `dept`
    --

    备注:通过以上的对比,可以知道,使用--databases选项之后,会在生成的SQL备份文件中增加CREATE DATABASE 和 USE语句.

    另:没有使用--databases选项时,如果要进行数据库的恢复,需要指定数据库的名字在mysql命令行中.同时,也可以将该备份文件在其他的数据库中进行恢复

    恢复时,需要指定数据库的名字,否则报错:

    [mysql@redhat6 MysqlDb_Backup]$ mysql -uroot -p < FullBackup_top_server_2018-04-09_NoOption.sql 
    Enter password: 
    ERROR 1046 (3D000) at line 28: No database selected

    指定数据库的名字进行恢复:

    [mysql@redhat6 MysqlDb_Backup]$ mysql -uroot -p -D top_server < FullBackup_top_server_2018-04-09_NoOption.sql 
    Enter password:

    备注:这里是通过-D top_server指定了要将数据恢复到哪个数据库下.

    小结:

      是否使用--databases参数的区别,就是在生成的SQL文件中是否包含CREATE DATABASE 和 use这两个SQL语句.

    文档创建时间:2018年4月9日16:12:46

  • 相关阅读:
    简单的StringBuffer实现
    Java-HashMap、HashSet、hashTable
    JavaScript 引用错误
    使用jconsole分析内存情况-JVM
    Thread 与 Runnable 混合使用测试
    裴波那序列-JAVA实现
    多线程之----------线程池
    winform 控件拖拽和缩放
    C# 使用Process调用外部程序中所遇到的参数问题
    winform textbox 的自动实现功能
  • 原文地址:https://www.cnblogs.com/chuanzhang053/p/8760704.html
Copyright © 2011-2022 走看看