## 实验环境


此次实验的环境如下

- MySQL 5.7.25

- Redhat 6.10

- binlog模式采用row模式

前面的一些章节我们对mysqldump常用命令进行了讲解

这个专题的内容为mysqlbinlog命令的详解

mysqlbinlog是MySQL中用来处理binlog的工具

这节的内容为mysqlbinlog的一些其他的参数

这里也并非介绍了所有的参数,只是列举了其中的一些

所有参数参看参考链接



## 1. --bind-address

如果客户端有多张网卡时,这里指定使用哪张网卡进行连接

```
mysqlbinlog --bind-address=11.12.14.30 --read-from-remote-server --host  11.12.14.29 --user system --password  --port 3306  --protocol=tcp  -vv mysql-bin.000001
```

## 2. --database

指定该参数时表示只列出该数据库的信息

```
mysqlbinlog  -v  --database=test /path/to/log/master-bin.000001
```

[image:588 size:orig]




上图上有个warning,说的是如果用--database了,可能会过滤掉一些事务

比如一个事务涉及到2个数据库,这时会输出GTID信息

我们可以再使用--exclude-gtids 或这--include-gtids 来排除或包含gtid


## 3. --force-if-open

无论二进制是否正在使用或者未正常关闭都读取他

```
mysqlbinlog  -v  --force-if-open  /path/to/log/master-bin.000001
```

## 4. --offset

跳过前N条事件,注意这里指的是事件数,一条事件可能占用很多position

[image:589 size:orig]

position 4为头部信息,总是会显示

## 5. --version

打印版本信息并退出

[image:590 size:orig]

## 6. --disable-log-bin

在使用mysqlbinlog恢复时不写binlog 日志,这样可以增加恢复速度

```
mysqlbinlog  --start-datetime="2019-04-16 08:00:00"  --disable-log-bin   /path/to/log/master-bin.000007 | mysql -h127.0.0.1 -usystem -P3306 -p
```
## 7. 参考链接


[https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html](https://dev.mysql.com/doc/refman/5.7/en/mysqlbinlog.html)

好了 今天的内容就说到这里,下节再见