MySQL日志管理工具 mysqlbinlog

使用mysqlbinlog查看二进制日志文件

# mysqlbinlog --help 帮助文档 常用选项: -d, --database=name 指定数据库名称,只列出指定的数据库相关操作 -o, --offset=number 忽略掉日志中的前number行 -r, --result-file=name 将输出的文本格式日志输出到指定文件 -s, --short-form 显示简单格式,省略掉一些信息 --set-charset=char-name 在输出为文本格式时,在文件第一行加上set names char-name,这个选项在某些情况下装载数据时非常有用 --start-datetime=name --stop-datetime=name 指定日期间隔内的所有日志 --start-position=# --stop-position=# 指定位置间隔内的所有日志

[root@db02 data]# ls mysql_bin.0*
mysql_bin.000001  mysql_bin.000002

使用cat查看都是乱码的,要使用mysqlbinlog 

[root@db02 data]# cat mysql_bin.000001
      
\þbinŔ̚tx5.6.36-logŔ̚8

?n¯±̚ @std!!!testBEGINC)¯±̚.턁teststunد±̚ 2 Fÿþþþǒ꯱̚?Y
                                                  -* ²̚ @std!!!testBEGIN¯ ²̚.µFteststu? ²̚(ہFÿþ䃮 ²̚? p²̚H @std!!!testBEGINH?²̚.rFteststuսݴp²̚(Fÿp²̚¹c0¦ºxp²̚ @std!!!testBEGIN䈍̚./FteststuM¤ް²̚(WFÿþ鈪9p²̚veؚ?ZH @std!!!testBEGINc
,²̚.ꂆteststun0®S²̚(Fÿþ꟎²̚3k{\˗²̚H @std!!!testBEGIN§Z[²̚.©Fteststu²̚(τFÿþp6*²̚?h	

 [root@db02 data]# mysqlbinlog mysql_bin.000001

[root@db02 data]# mysqlbinlog mysql_bin.000001

/*!50530 SET @@SESSION.PSEUDO_SLAVE_MODE=1*/;
/*!40019 SET @@session.max_insert_delayed_threads=0*/;
/*!50003 SET @OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;
DELIMITER /*!*/;
# at 4
#180411 12:53:25 server id 1  end_log_pos 120 CRC32 0x6ed142e0 	Start: binlog v 4, server v 5.6.36-log created 180411 12:53:25 at startup
ROLLBACK/*!*/;
....................

-d  只显示对test数据库的操作日志

[root@db02 data]# mysqlbinlog -d test mysql_bin.000001

-o选项 忽略前3个操作

[root@db02 data]# mysqlbinlog mysql_bin.000002 -o 3

截取指定日期之间的日志

显示两个时间点之间的日志2018/04/11 15:00:45 ~ 2018/04/11 15:01:35 

[root@db02 data]# mysqlbinlog mysql_bin.000001 --start-datetime='2018/04/11 15:00:45' --stop-datetime='2018/04/11 15:01:35'

开始日期和结束日期可以只写一个;

如果只写开始日期,表示范围是开始日期到日志结束;

如果只写结束日期,表示范围是日志开始到指定的日期结束

截取指定位置之间的日志

 --start-position=1903 --stop-position=2020

[root@db02 data]# mysqlbinlog mysql_bin.000001 --start-position=1903 --stop-position=2020

注:此博文仅供参考! 参考书籍:《深入浅出MySQL  数据库开发、优化与管理维护》(第二版)

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的SOD蜜

(PDF.NET框架实例讲解)将存储过程映射为实体类

PDF.NET数据开发框架可以将表,视图,表值函数,自定义的查询语句和存储过程映射为实体类,在上一篇《(PDF.NET框架实例讲解)将任意复杂的SQL查询映射成...

23910
来自专栏日常分享

Oracle常用数据库系统表单以及SQL的整理

  因为最近涉及到了一些数据库的归档,备份等工作,所以一部分的重心放在了数据库上,毕竟之前对数据库的了解也只停留在了一般的建表,查询,最多最多再写一写触发器之类...

1421
来自专栏喵了个咪的博客空间

基于PhalApi2的Redis拓展

基于PhalApi2的Redis拓展 ? 前言 Redis在PHP开发中运用场景已经无处不在,小到简单缓存大到数据库或消息队列都可以使用Redis来进行实现,基...

3095
来自专栏杨建荣的学习笔记

MySQL备份恢复第二篇(r5笔记第6天)

MySQL中的数据恢复功能相比Oracle来说还是要单薄一些,而Oracle中的数据恢复相对来说自动化的程度要高一些。不过Mysql的二进制日志提供的信息很丰富...

3595
来自专栏LanceToBigData

MySQL(十五)之数据备份中mysqldump详解

前言   其实前面一篇数据备份已经是非常的详细了,这里我想单独的讲解一下mysqldump,相信很多程序员都是用过这个命令的! 一、MySQL数据库的备份与还原...

3218
来自专栏张善友的专栏

AggregateCacheDependency、CacheDependency、SqlCacheDependency Asp.net 2.0和Sql Server的缓存管理和使用ObjectBuil

       这两天 PetShop is Evil?等对PetShop 的讨论很多,我在这里也发一篇凑凑热闹。我下面主要是对Asp.net 2.0新增的缓存管...

2038
来自专栏芋道源码1024

Java中高级面试题(5)

线程死锁是指由于两个或者多个线程互相持有对方所需要的资源,导致这些线程处于等待状态,无法前往执行。当线程进入对象的synchronized代码块时,便占有了资源...

900
来自专栏沈唁志

如何在CentOS 7上安装PostgreSQL关系数据库

PostgreSQL关系数据库系统是一个功能强大的,可扩展的,并符合标准的开源数据库平台。本指南将帮助您在CentOS 7 Linode上安装和配置Postgr...

1572
来自专栏python学习之旅

Python笔记(十二):操作数据库

(一)      前言     本文说明如何连接Oracle、MySQL、sqlserver,以及执行sql、获取查询结果等。 (二)      DB-API ...

3809
来自专栏张善友的专栏

SQL Server : Browser服务

SQL Server : Browser服务是SQL Server 2005新增的,简单的说,如果一个物理服务器上面有多个SQL Server实例,那么为了确保...

2195

扫码关注云+社区

领取腾讯云代金券