mysqldump命令详解 5-导出事件,函数和存储过程
往期专题请查看www.zhaibibei.cn 这是一个坚持Oracle,Python,MySQL原创内容的公众号
前情提要
MySQL 5.7 Windows平台安装
MySQL 5.7 Linux平台安装 Part 1
MySQL 5.7.21 Linux平台安装 Part 2
MySQL 5.7 常用命令
[MySQL学习笔记]1. MySQL测试数据的构造
[MySQL学习笔记]2. mysqldump命令详解 Part 1
[MySQL学习笔记] 3.mysqldump命令详解 Part 2 -备份全库
mysqldump命令详解 Part 3-备份单表
[MySQL故障处理]记一次innobackupex导致的从库无法同步的问题
mysqldump命令详解 4-按条件备份表数据
实验环境:
- MySQL 5.7.25
- Redhat 6.10
前面我们建立了数据库并建立相关的对象
- 数据库
- 表
- 存储过程
- 函数
- 触发器
- 事件
今天的内容为导出MySQL所有的对象
事件 函数 存储过程
1. 备份语句
我们来备份数据库并且备份其中的触发器,函数和存储过程
从这起开始在备份语句中加入--single-transaction 参数
该参数在innodb中可以不对表施加写入锁进行导出,MyISAM引擎还是锁表的
通过前面实验我们知道了 备份单独数据库或表的话触发器是会导出的
而其他的是不会导出的
备份所有数据库
mysqldump -h127.0.0.1 -usystem -p123456 --single-transaction --set-gtid-purged=OFF --all-databases --triggers --events --routines> /tmp/test_all.sql
备份test数据库
mysqldump -h127.0.0.1 -usystem -p123456 --single-transaction --set-gtid-purged=OFF --databases test --triggers --events --routines> /tmp/test_all.sql
这里备份test数据库及下面的触发器 事件 存储过程和函数
2. 内容解析
2.1 版本信息
第一行是mysqldump的版本
这里为10.13的版本
第二三行显示主机名为127.0.0.1
数据库版本为5.7.25
接下来为一些系统变量的设置
注意这里/* !12345 */ 不是注释 (/* */ 是MySQL的多行注释符)
它表示如果MySQL的版本大于4.1.1 则执行相应的语句
2.2 数据库和表的信息
接下来是备份数据库的语句
Current Database :test 代表当前进行的是mysql数据库
后面跟的是建数据库的语句(CREATE DATABASE test)
如果不存在的话(IF NOT EXISTS),如果存在也不会删除
之后使用该数据库(use test)
接下来是表结构相关的(Table structure for table)
如果已经有该表则先删除(DROP TABLE IF EXISTS)
之后是建立mysql数据库下表的表结构的语句(Create TABLE )
2.3 表数据的备份
接下来是表数据的备份(Dumping data for table)
首先锁定表不让其他进程写(LOCK TABLE WRITE)
然后使MySQL停止更新非唯一索引(ALTER TABLE DISABLE KEYS),这样能加快插入速度
之后将数据转换成insert语句(INSERT INTO)
之后重新建立丢失的索引(ALTER TABLE ENABLE KEYS)
最后释放锁(UNLOCK TABLES)
直到该数据库所有的表导出完毕后进行下一个数据库
2.4 备份events
接下来是备份事件
导出事件(Dumping events for database 'test')
2.5 备份routines
MySQL中的routines 代表存储过程和函数
导出routines(Dumping routines for database 'test')
之后是详细的建立语句
2.6 结束备份
最后是备份的完成日期
3. 总结
可以看出导出mysql所有对象有如下内容
- 建立数据库(如果不存在)
- 使用数据库
- 删除表(如果存在)
- 建表
- 锁表
- 禁用非唯一索引
- 插入数据
- 启用非唯一索引(重建索引)
- 释放锁
- 导出视图
- 导出events
- 导出routines(存储过程和函数)
这里就是一个完整的备份语句,包含了MySQL所有的内容
今天的内容就到这里,欢迎查看
可点击阅读原文获得更好的阅读体验,推荐在PC端阅读
也可在公众号内回复 导出事件,函数和存储过程 搜索相关内容
或直接打开个人网页搜索
http://www.zhaibibei.cn
- AngularJS 用 $http.jsonp 跨域SyntaxError问题
- 简单的java socket 示例
- Hadoop二次开发环境构建
- Android EditText 获得输入焦点 以及requestfocus()失效的问题
- 【直播】我的基因组68:看看哪些基因的突变较多,哪些较少
- GDI+编程
- GDI编程
- ADO访问数据库
- 【直播】我的基因组76:用krona对血液全基因组的菌比例可视化
- 【直播】我的基因组74:快速给测序reads比对到物种
- 用ADO操作数据库的方法步骤
- VC如何获取对话框中控件的坐标
- 【直播】我的基因组72:把基因检测芯片数据转为vcf格式
- 【直播】我的基因组78:简单解析一下蛋白编码基因的测序深度及覆盖度
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- 一天一大 lee(二叉树的层平均值)难度:简单-Day20200912
- 一天一大 lee(组合总和 II)难度:中等-Day20200910
- 一天一大 lee(组合总和 III)难度:中等-Day20200911
- 一天一大 lee(翻转二叉树)难度:简单-Day20200916
- 一天一大 lee(表示数值的字符串)难度:中等-Day20200902
- 一天一大 lee(单词搜索)难度:简单-Day20200913
- 一天一大 lee(克隆图)难度:中等-Day20200813
- 一天一大 lee(相同的树)难度:简单-Day20200807
- 一天一大 lee(解数独)难度:困难-Day20200915
- 一天一大 lee(复原IP地址)难度:中等-Day20200809
- 一天一大 lee(计数二进制子串)难度:简单-Day20200810
- 一天一大 lee(打家劫舍 III)难度:中等-Day20200805
- 一天一大 lee(课程表)难度:中等-Day20200804
- 一天一大 leet(二叉树展开为链表)难度:中等-Day20200802
- 一天一大 leet(字符串相加)难度:简单-Day20200803