mysql数据库使用mysqldump工具针对一个数据库备份,使用--databases选项与不使用该参数的区别
2024-08-28 20:08:50
需求描述:
今天在做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--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., for linux-glibc2. (x86_64)
--
-- Host: localhost Database: top_server
-- ------------------------------------------------------
-- Server version 5.5.-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=; --
-- Table structure for table `dept`
--
备注:通过以上的对比,可以知道,使用--databases选项之后,会在生成的SQL备份文件中增加CREATE DATABASE 和 USE语句.
另:没有使用--databases选项时,如果要进行数据库的恢复,需要指定数据库的名字在mysql命令行中.同时,也可以将该备份文件在其他的数据库中进行恢复
恢复时,需要指定数据库的名字,否则报错:
[mysql@redhat6 MysqlDb_Backup]$ mysql -uroot -p < FullBackup_top_server_2018--09_NoOption.sql
Enter password:
ERROR (3D000) at line : No database selected
指定数据库的名字进行恢复:
[mysql@redhat6 MysqlDb_Backup]$ mysql -uroot -p -D top_server < FullBackup_top_server_2018--09_NoOption.sql
Enter password:
备注:这里是通过-D top_server指定了要将数据恢复到哪个数据库下.
小结:
是否使用--databases参数的区别,就是在生成的SQL文件中是否包含CREATE DATABASE 和 use这两个SQL语句.
文档创建时间:2018年4月9日16:12:46
最新文章
- [原创]CSS3打造动态3D气球
- EditText限制小数点前后位数
- VTK的学习资源
- myeclipse+tomcat内存溢出
- QQ粘性布局
- git删除中文文件
- scp文件到远端机器问题总结及解决方法
- 如何写robots.txt?
- MYSQL 维护表的常用 5 方法
- 改变Edit的光标(使用CreateCaret,ShowCaret和LoadBitmap三个API函数)
- JavaWeb之MVC模式
- 【MySQL】分页查询实例讲解
- CSS基础知识(概念、块级元素、行内元素、选择器)
- Oracle处理XML字段时遇到的ORA-31013: XPATH 表达式无效问题
- 通过PHP调用微信JSSDK实例
- fpm定制化RPM包之nginx rpm包的制作
- POJ 1679 The Unique MST(判断最小生成树是否唯一)
- JavaScript Standard Style
- 1 如何使用pb文件保存和恢复模型进行迁移学习(学习Tensorflow 实战google深度学习框架)
- python tarfile模块基本使用