mysqldump备份时,--master-data选项的作用是什么?
需求描述:
今天在研究mysql的备份和恢复,使用mysqldump备份数据库时,用到--master-data选项,
在此,测试并记录选项的作用
测试过程:
1.不使用--master-data进行数据库的备份
[mysql@redhat6 ~]$ mysqldump -uroot -p --single-transaction --databases test01 > backup_test01.sql Enter password: [mysql@redhat6 ~]$ ls -l total 238668 -rw-rw-r-- 1 mysql mysql 122191921 Apr 3 18:55 backup_test01.sql #mysqldump生成的sql格式的dump文件 -rw-rw-r-- 1 mysql mysql 122192066 Apr 3 18:52 ts01.sql drwxrwxr-x. 4 mysql mysql 4096 Mar 20 11:17 workspace [mysql@redhat6 ~]$
2.查看dump的sql文件的信息
-- MySQL dump 10.13 Distrib 5.5.57, for linux-glibc2.12 (x86_64) -- -- Host: localhost Database: test01 -- ------------------------------------------------------ -- 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 */; -- -- Current Database: `test01` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test01` /*!40100 DEFAULT CHARACTER SET latin1 */;
3.使用--master-data参数进行mysqldump的备份
[mysql@redhat6 ~]$ mysqldump -uroot -p --single-transaction --master-data --databases test01 > backup_test01.sql Enter password: [mysql@redhat6 ~]$ ls -l total 238668 -rw-rw-r-- 1 mysql mysql 122192066 Apr 3 18:57 backup_test01.sql -rw-rw-r-- 1 mysql mysql 122192066 Apr 3 18:52 ts01.sql drwxrwxr-x. 4 mysql mysql 4096 Mar 20 11:17 workspace
4.查看生成的sql备份文件
-- MySQL dump 10.13 Distrib 5.5.57, for linux-glibc2.12 (x86_64) -- -- Host: localhost Database: test01 -- ------------------------------------------------------ -- 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.000090', MASTER_LOG_POS=107; -- -- Current Database: `test01` -- CREATE DATABASE /*!32312 IF NOT EXISTS*/ `test01` /*!40100 DEFAULT CHARACTER SET latin1 */;
备注:标记为黄色的部分是多出来内容,该内容是二进制日志的信息,即在备份的时候,当前数据库二进制的信息。
小结:
--master-data选项的作用就是将二进制的信息写入到输出文件中,在这里是写入到备份的sql文件中。
文档创建时间:2018年4月3日19:00:45
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!