mysqlbinlog命令详解 Part 1-实验环境准备
时间:2022-07-23
本文章向大家介绍mysqlbinlog命令详解 Part 1-实验环境准备,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前面的一些章节我们对mysqldump常用命令进行了讲解
这个专题的内容为mysqlbinlog命令的详解
mysqlbinlog是mySQL中用来处理binlog的工具
1. MySQL二进制日志介绍
服务器的binlog包含一些event
这些event描述了数据库内容的状态,包含了数据修改,服务器重启等,以二进制的格式写入日志文件
这里和redo log相似,不过redo是存储引擎层面的,而binlog是数据库层面的
即一个MySQL不一定有redo日志 但一定有binlog(开启)
可以使用mysqlbinlog工具来将二进制转换为文本格式
同理我们也可以使用mysqlbinlog来处理relay log
2. 实验环境准备
此次实验的环境如下
- MySQL 5.7.25
- Redhat 6.10
- binlog模式采用row模式
这里我们构造一些DML语句来演示mysqlbinlog如何工作的
2.1 重置binlog
我们使用如下命令重置binlog,方便我们观察
SQL>reset master;
SQL>show master status;
2.2 建立表
create database test;
use test
CREATE TABLE `innodb_table` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) NOT NULL,
`age` tinyint(3) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=innodb DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
2.3 单条插入语句
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'insert1', CEIL(RAND() * 110) );
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'insert2', CEIL(RAND() * 110) );
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'insert3', CEIL(RAND() * 110) );
2.4 单条更新语句
update innodb_table set name='update1' where id=1;
update innodb_table set name='update2' where id=2;
update innodb_table set name='update3' where id=3;
2.5 事务多条语句
START TRANSACTION;
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'trans_insert1', CEIL(RAND() * 110) );
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'trans_insert2',CEIL(RAND() * 110) );
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'trans_insert3', CEIL(RAND() * 110) );
update innodb_table set name='commit_update1' where id=1;
update innodb_table set name='commit_update2' where id=2;
update innodb_table set name='commit_update3' where id=3;
COMMIT;
2.6 事务回滚语句
START TRANSACTION;
INSERT INTO `innodb_table`(`name`,`age`) VALUES( 'rooback_insert1', CEIL(RAND() * 110) );
update innodb_table set name='rollback_update1' where id=1;
ROLLBACK;
2.6 event更新
event 更新数据请移步下面链接
2.7 procedure更新
procedure更新移步下面链接
好了,环境准备已经好了,大家按照上面的步骤执行
下届开始讲解mysqlbinlog的命令
- Canvas 图形组合方式
- HTML5 FileReader接口学习笔记
- 如何用BBED使Offline的数据文件Online
- Entity Framework4.3 Code-First基于代码的数据迁移讲解1.建立一个最初的模型和数据库 2.启动Migration(数据迁移)3.第一个数据迁移4.订制的数据迁移4.动态
- 轻松初探Python(六)—函数
- css3实现圆角边框渐变
- 设计模式专题(十二)——状态模式
- HTML5新增属性学习笔记
- HTML5标签学习笔记
- 设计模式专题(十三) ——备忘录模式
- 设计模式专题(十五) ——组合模式
- 设计模式专题(十六)——迭代器模式
- 设计模式专题(十七) ——单例模式
- 设计模式专题(十八) ——桥接模式
- 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 实例讲解
- markdown数学公式
- C++核心准则T.2:使用模板表现可以适用于多种参数类型的算法
- C++核心准则T.3:使用模板表现容器和范围
- Markdown的时序图、流程图、和甘特图+Hexo的相关配置
- 记一次Fcitx5的安装
- 解决KDE下KDE Wallet重装系统后每次登陆需要输入密码
- KDE下完美的Unity桌面体验,扔掉active window control
- C++核心准则T.5:结合使用泛型和面向对象技术应该增强它们的效果而不是成本
- C++核心准则T.10:为所有的模板参数定义概念
- C语言二级指针用法之模拟句柄用途
- Linux解压缩文件
- C++核心准则T.11:只要可能就使用标准概念
- 给pugjs的stun主题添加canvas时钟
- C++核心准则T.12:声明局部变量类型时,概念比auto更好
- Arch Linux切换rEFInd开机引导程序