欢迎光临
我们一直在努力

mysqlbinlog命令必备知识

mysqlbinlog 命令以用户可视的方式展示出二进制日志中的内容。同时,也可以将其中的内容读取出来,供其他MySQL实用程序使用。

1. 获取当前二进制日志列表

SHOW BINARY LOGS;或

SHOW MASTER LOGS;

2. 获取特定数据库条目

mysqlbinlog -d databasename mysqld-bin.000001 > data.sql

同–database

3. 禁止恢复过程产生日志

mysqlbinlog -d -D databasename mysqld-bin.000001 > data.sql

效果:在输出第二行会添加SQL_LOG_BIN=0   需root权限

4. 在输出中控制base-64 BINLOG

四个可选项:

     auto:默认

     never:不显示类似的行BINLOG ' IeZ4WQ8BAAAAZgAAABAA

     decode-rows:基于行的事件解码成一个SQL语句,特别是当指定-verbose选项时

           例:mysqlbinlog –base64-output=decode-rows –verbose mysqld-bin.000001

     always:(5.7用unspec)只显示了BINLOG项

5. 跳过前N个条目

-o指定跳过前多少个条目

mysqlbinlog o 10000 mysqldbin.000001

6. 保存输出到文件

两种方法,重定向和-r:

     mysqlbinlog -r output.log mysqld-bin.000001

–server-id= 指定是是由给定服务器生成的日志

     mysqlbinlog serverid=1 r output.log mysqldbin.000001

7. 从一个特定位置提取条目

从指定位置开始读:–start-position/-j

      mysqlbinlog j 15028 mysqldbin.000001 > from15028.out

读到结束位置:

      mysqlbinlog stopposition=15028 mysqldbin.000001 > upto15028.out

8. 刷新日志以清除Binlog输出

如日志中出现Warning: this binlog is either in use or was not closed properly

是因为二进制日志没有被正确的关闭,需连接mysql刷新日志mysql> flush logs;

9. 在输出中只显示语句

不显示附加信息要加选项 -s / –short-form

10.查看特定时间的条目

根据时间截取 –start-datetime   –stop-datetime

例:mysqlbinlog stopdatetime="2017-08-16 15:00:00" mysqldbin.000001

11. 获取远程服务器二进制日志

读取远程的二进制日志示例:

mysqlbinlog R h 192.168.101.2 p mysqldbin.000001

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。