(一)mysqlbinlog工具介绍

binlog类型是二进制的,也就意味着我们没法直接打开看,MySQL提供了mysqlbinlog来查看二进制日志,该工具类似于Oracle的logminer。mysqlbinlog用法为

[root@masterdb binlog]# mysqlbinlog

Usage: mysqlbinlog [options] log-files

其中,常用的option选项如下:

option 作用
-d , --database=name 只列出指定数据库的操作
-o , --offset = n 忽略日志前n行
-r , --result-file=name 将输出的文本格式日志保存到文件
-v
-vv
-v  :从binlog中重建sql语句
-vv:显示的SQL语句增加了注释,可以理解为-v的增强
--start-datetime=datetime
--stop-datetime=datetime
指定日期间隔内的所有日志
--start-position=position
--stop-position=position
指定位置间隔内的所有日志

(二)mysqlbinlog使用例子

(1)提取指定的binlog日志

mysqlbinlog /home/mysql/data/ins3308/binlog.000018


(2)提取指定position位置的binlog日志

mysqlbinlog --start-position=120 --stop-position=332 /home/mysql/data/ins3308/binlog.000018


(3)提取指定position位置的binlog日志并输出到压缩文件

mysqlbinlog --start-position=120 --stop-position=332 /home/mysql/data/ins3308/binlog.000018 |gzip >extra_01.sql.gz


(4)提取指定position位置的binlog日志导入数据库

mysqlbinlog --start-position=120 --stop-position=332 /home/mysql/data/ins3308/binlog.000018 | mysql -uroot -p


(5)提取指定开始时间的binlog并输出到日志文件

mysqlbinlog --start-datetime="2017-08-14 10:00:00" /home/mysql/data/ins3308/binlog.000018 --result-file=extra02.sql


(6)提取指定位置的多个binlog日志文件

mysqlbinlog --start-position=120 --stop-position=332 /home/mysql/data/ins3308/binlog.000018 /home/mysql/data/ins3308/binlog.000019|more


(7)提取指定数据库binlog并转换字符集到UTF8

mysqlbinlog --database=test --set-charset=utf8 /home/mysql/data/ins3308/binlog.000018 /home/mysql/data/ins3308/binlog.000019 >test.sql

(8)远程提取日志,指定结束时间

mysqlbinlog -uroot -p -h192.168.10.11 -P3308 --stop-datetime="2017-08-14 10:00:00" --read-from-remote-server binlog.000018 |more

(9)远程提取使用row格式的binlog日志并输出到本地文件

mysqlbinlog -uroot -p -P3308 -h192.168.10.11 --read-from-remote-server -vv binlog.000018 >row.sql

(三)mysqlbinlog提取日志样例

例子1:使用--start-datetime和--stop-datetime显示2020年2月12日23:30到2020年2月12日23:50的日志

[root@masterdb binlog]# mysqlbinlog master-bin.000025 --start-datetime='2020-02-12 23:30:00' --stop-datetime='2020-02-12:23:50:00'
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#200212 23:40:10 server id 1 end_log_pos 123 CRC32 0xfc4fd0fc Start: binlog v 4, server v 5.7.24-log created 200212 23:40:10 at startup
# Warning: this binlog is either in use or was not closed properly.
ROLLBACK/*!*/;
BINLOG '
WhxEXg8BAAAAdwAAAHsAAAABAAQANS43LjI0LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAABaHEReEzgNAAgAEgAEBAQEEgAAXwAEGggAAAAICAgCAAAACgoKKioAEjQA
AfzQT/w=
'/*!*/;
# at 123
#200212 23:40:10 server id 1 end_log_pos 154 CRC32 0x3dc8c184 Previous-GTIDs
# [empty]
# at 154
#200212 23:40:46 server id 1 end_log_pos 219 CRC32 0x12bba458 Anonymous_GTID last_committed=0 sequence_number=1 rbr_only=no
SET @@SESSION.GTID_NEXT= 'ANONYMOUS'/*!*/;
# at 219
#200212 23:40:46 server id 1 end_log_pos 315 CRC32 0x5ed83729 Query thread_id=3 exec_time=0 error_code=0
use `db1`/*!*/;
SET TIMESTAMP=1581522046/*!*/;
SET @@session.pseudo_thread_id=3/*!*/;
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0, @@session.unique_checks=1, @@session.autocommit=1/*!*/;
SET @@session.sql_mode=1436549152/*!*/;
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/;
/*!\C utf8 *//*!*/;
SET @@session.character_set_client=33,@@session.collation_connection=33,@@session.collation_server=33/*!*/;
SET @@session.lc_time_names=0/*!*/;
SET @@session.collation_database=DEFAULT/*!*/;
create table t1(id int )
/*!*/;
SET @@SESSION.GTID_NEXT= 'AUTOMATIC' /* added by mysqlbinlog */ /*!*/;
DELIMITER ;
# End of log file
/*!50003 SET COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;
/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=0*/;

相关文档集合:

1.MySQL日志--二进制日志(binlog)                  
2.使用mysqlbinlog查看二进制日志                  
3.MySQL使用mysqldump+binlog完整恢复被删除的数据库
4.使用binlog2sql工具来恢复数据库                 
5.MySQL闪回工具—MyFlash

使用mysqlbinlog查看二进制日志的更多相关文章

  1. 使用mysqlbinlog从二进制日志文件中查询mysql执行过的sql语句 (原)

    前提MySQL开启了binlog日志操作1. 查看MySQL是否开启binlog(进mysql操作) mysql> show variables like 'log_bin%';       2 ...

  2. mysql日志种类、二进制日志模式、mysqlbinlog解析二进制日志

    mysql日志的种类 二进制日志(binary log):记录数据更新的操作,mysqlbinlog 可查看二进制日志文件 错误日志(error log):记录mysql服务进程mysqld的启动.关 ...

  3. Linux数据库:MYSQL启用和查看二进制日志

    在/etc/my.cnf文件中[mysqld]下加上: server-id = 1 (在整个Mysql集群中保证唯一) log-bin = binlog  log-bin-index = binlog ...

  4. mysqlbinlog抽取二进制日志中某库某表的日志

    1.先使用myqlbinlog命令把整个库的二进制日志抽取出来 mysqlbinlog --database=db_name mysql-bin.xxxxxx > db_name.sql 2.然 ...

  5. mysqlbinlog查看 binlog日志报错mysqlbinlog: unknown variable 'default-character-set=utf8mb4'

    今天,查看mysql slave节点 binlog日志信息时,执行mysqlbinlog命令报错mysqlbinlog: unknown variable 'default-character-set ...

  6. mysqlbinlog 查看mysql bin 日志 mysqlbinlog: unknown variable 'default-character-set=utf8'

    mysqlbinlog  mysql-bin.000036 | less 查询包含几个字段的语句: mysqlbinlog mysql-bin.000036| egrep '(201103061000 ...

  7. MySQL日志--二进制日志

    (一)什么是二进制日志 二进制日志(binlog)记录了数据库中所有的DDL和DML操作,但是不包括select语句,语句以"事件"的形式保存,记录了数据库的更改变化,在主从复制( ...

  8. mysql数据安全之利用二进制日志mysqlbinlog恢复数据

    mysql数据安全之利用二进制日志mysqlbinlog恢复数据 简介:如何利用二进制日志来恢复数据 查看二进制日志文件的内容报错: [root@xdclass-public log_bin]# my ...

  9. mysql数据安全之利用二进制日志mysqlbinlog备份数据

    mysql数据安全之利用二进制日志mysqlbinlog备份数据 简介:如何利用二进制日志来备份数据 什么是二进制日志: 二进制日志就是记录着mysql数据库中的一些写入性操作,比如一些增删改,但是, ...

随机推荐

  1. scanf()的使用及一些注意事项

    相比较Java的键盘录入,C语言的scanf有一些需要注意的细节,为了避免使用的时候踩坑,我们就来了解一下scanf. scanf()是C语言的格式输入函数,和printf函数一样被声明在stdio. ...

  2. 3分钟了解GPT Bert与XLNet的差异

    译者 | Arno 来源 | Medium XLNet是一种新的预训练模型,在20项任务中表现优于BERT,且有大幅度的提升. 这是什么原因呢? 在不了解机器学习的情况下,不难估计我们捕获的上下文越多 ...

  3. PyTorch专栏(二)

    专栏目录: 第一章:PyTorch之简介与下载 PyTorch简介 PyTorch环境搭建 第二章:PyTorch之60min入门 PyTorch 入门 PyTorch 自动微分 PyTorch 神经 ...

  4. Tarjan算法(模板)

    算法思想: 首先要明确强连通图的概念,一个有向图中,任意两个点互相可以到达:什么是强连通分量?有向图的极大连通子图叫强连通分量. 给一个有向图,我们用Tarjan算法把这个图的子图(在这个子图内,任意 ...

  5. HDU - 3791 建立二叉搜索树

    题意: 给定一个序列,下面又有n个序列,判断这个序列和其他序列是否为同一个二叉树(同一序列数字各不相同) 思路: 首先讲将一个序列建立成二叉搜索树,然后将其他序列也建立二叉搜索树,两个树进行前序遍历, ...

  6. Python第十章-模块和包

    模块和包 我们以前的代码都是写在一个文件中, 而且代码也比较短. 假设我们现在要写一个大的系统, 不可能把代码只写到一个文件中, 迫切想把代码写到不同的文件中, 并且能够在一个文件使用另一个文件中代码 ...

  7. python中的函数及作用域的理解

    内置函数 常用的几个内置函数 function des len 求长度 min 求最小值 max 求最大值 sorted 排序 reversed 反向 sum 求和 进制转换函数 function d ...

  8. iOS pch

    Xcode6 之前会在 Supporting Files 文件夹下自动生成一个"工程名-PrefixHeader.pch"的预编译头文件,pch 头文件的内容能被项目中的其他所有源 ...

  9. LeetCode47, 全排列进阶,如果有重复元素怎么办?

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是LeetCode第28篇,依然是全排列的问题. 如果对全排列不熟悉或者是最近关注的同学可以看一下上一篇文章: LeetCode46 回 ...

  10. 实验十--- MySQL过程式数据库对象

    实验十 MySQL过程式数据库对象 一.  实验内容: 1. 存储过程的创建和调用 2. 存储函数的创建和调用 3. 触发器的创建和触发 4. 事件的创建和修改 一.  实验项目:员工管理数据库 用于 ...