实验环境

此次实验的环境如下

  • 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
1.png

上图上有个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

2.png

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

5. --version

打印版本信息并退出

3.png

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

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