mysql导出函数与事件_mysqldump命令详解Part6-导出事件,
函数和存储过程
前情提要
实验环境: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)
mysql查看所有存储过程
⾸先锁定表不让其他进程写(LOCK TABLE WRITE)
tostring c++然后使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所有对象有如下内容建⽴数据库(如果不存在)
使⽤数据库
删除表(如果存在)
建表
锁表
禁⽤⾮唯⼀索引
插⼊数据
启⽤⾮唯⼀索引(重建索引)
小米13屏幕释放锁
导出视图
导出events
导出routines(存储过程和函数)
这⾥就是⼀个完整的备份语句,包含了MySQL所有的内容
今天的内容就到这⾥,欢迎查看curl命令发送get请求带参数
6. mysqldump命令详解 Part 6-导出事件,函数和存储过程w ww.zhaibibei
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论