-
5. mysqlbinlog命令详解 Part 5 通过位置和时间查看日志
tutorial5
-
-
Attachments
-
Changes
-
View Source
-
View
## 实验环境
此次实验的环境如下
- MySQL 5.7.25
- Redhat 6.10
- binlog模式采用row模式
前面的一些章节我们对mysqldump常用命令进行了讲解
这个专题的内容为mysqlbinlog命令的详解
mysqlbinlog是MySQL中用来处理binlog的工具
这节内容讲如何根据条件来查看特定的位置
## 1. 根据事件起始位置
### 1.1 如何查看位置
**日志中查看**
每个事件从#at position1开始至下一个# at position2结束
postion为具体的数字
[image:571 size:orig]
如上图所示
INSERT事件的开始位置为1015,结束位置为1064 ,其实end_log_pos也是结束位置
**查看当前日志位置**
```
SQL>show master status;
```
[image:572 size:orig]
上图代表当前日志记录到000001号日志文件的715号位置,即下个事件的起始位置为715
### 1.2 应用举例
下面根据上图查看INSERT事件
如不指定stop-position 则会一直到最后
```
shell> mysqlbinlog -v --start-position=780 --stop-position=1064 /path/to/log/master-bin.000001
```
[image:573 size:orig]
注意,这里会强制在开始显示格式描述事件,之后才跳到780
这里我们从780位置开始,即整个插入的开始阶段
如果直接从1015开始会报错,找不到表,即没有映射表的事件
[image:574 size:orig]
## 2. 根据事件执行时间
### 2.1 如何查看执行时间
在 # at position的下一行有时间显示
```
# at 1015
#190416 14:20:44
```
### 2.2 应用举例
如下例子显示了2019-04-16 14:10:56 至2019-04-16 14:12:56 发生的时间
如不指定stop-datetime则表示一直到现在
注意=后不能有空格
```
mysqlbinlog -v --start-datetime="2019-04-16 14:10:56" --stop-datetime ="2019-04-16 14:12:56" /path/to/log/master-bin.000001
```
[image:575 size:orig]
## 3. 参考链接
[https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html](https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html)
好了 今天的内容就说到这里,下节再见