mysqlbinlog用于处理二进制的日志文件,如果想要查看这些日志文件的文本内容,就需要使用mysqlbinlog工具。

1.mysqlbinlog命令的语法

shell > mysqlbinlog [options] logfile1 logfile2 ...

2.mysqlbinlog的选项

-d, --database=name      仅显示指定数据库的转储内容。
-o, --offset=# 跳过前N行的日志条目。
-r, --result-file=name 将输入的文本格式的文件转储到指定的文件。
-s, --short-form 使用简单格式。
--set-charset=name 在转储文件的开头增加'SET NAMES character_set'语句。
--start-datetime=name 转储日志的起始时间。
--stop-datetime=name 转储日志的截止时间。
-j, --start-position=# 转储日志的起始位置。
--stop-position=# 转储日志的截止位置。

3.示例

查看二进制日志文件所在的位置,方法如下:

mysql> show variables like '%log%';
+-----------------------------------------+--------------------------------------------+
....省略....
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
....省略....
+-----------------------------------------+--------------------------------------------+

由以上输出可见,log-bin的值为OFF,所以必须首先打开log-bin,方法如下:

vi /etc/my.cnf
[mysqld]
....省略....
log-bin=bin-log # 等号后为log-bin文件的名称前缀,名称可以自定义。

转储log-bin:

mysql> use test;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> truncate table t1;
Query OK, 0 rows affected (0.00 sec)
mysql> insert into t1 values(214);
Query OK, 1 row affected (0.00 sec)
mysql> insert into t1 values (215);
Query OK, 1 row affected (0.00 sec)
---------------------------------------------------------------------------------------------------------------------
# mysqlbinlog bin-log.000002
....省略....
use `test`/*!*/;
....省略....
truncate table t1
/*!*/;
# at 211
#160830 7:28:36 server id 1 end_log_pos 290 CRC32 0x1f3368bb Query thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1472513316/*!*/;
BEGIN
/*!*/;
# at 290
#160830 7:28:36 server id 1 end_log_pos 390 CRC32 0xcf40a797 Query thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1472513316/*!*/;
insert into t1 values(214)
/*!*/;
# at 390
#160830 7:28:36 server id 1 end_log_pos 421 CRC32 0x9d9f8407 Xid = 11
COMMIT/*!*/;
# at 421
#160830 7:28:48 server id 1 end_log_pos 500 CRC32 0x722de8f9 Query thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1472513328/*!*/;
BEGIN
/*!*/;
# at 500
#160830 7:28:48 server id 1 end_log_pos 601 CRC32 0x03e2087d Query thread_id=1 exec_time=0 error_code=0
SET TIMESTAMP=1472513328/*!*/;
insert into t1 values (215)
/*!*/;
# at 601
#160830 7:28:48 server id 1 end_log_pos 632 CRC32 0x062775e4 Xid = 12
COMMIT/*!*/;
DELIMITER ;
# End of log file
+

mysqlbinlog(日志管理工具)的更多相关文章

  1. mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)

    一.概述 由于服务器生成的二进制日志文件以二进制格式保存,所以如果要想检查这些文件的文本格式,就会用到mysqlbinlog日志管理工具. mysqlbinlog的语法如下: mysqlbinlog ...

  2. Java程序员须知的七个日志管理工具(转)

    Splunk vs. Sumo Logic vs. LogStash vs. GrayLog vs. Loggly vs. PaperTrails vs. Splunk>Storm 英文原文:T ...

  3. LogCook 一个简单实用的Android日志管理工具

    众所周知,日志的管理是软件系统很重要的一部分,千万不可忽略其重要性.完整的日志将会在系统维护中起着异常重要的作用,就好像磨刀不误砍柴工一样,日志就像对系统进行分析的工具,工具便捷了,对系统分析起来就能 ...

  4. 日志管理工具之logrotate

    Logrotate配置和测试 logrotate软件是一个日志管理工具,用于非分隔日志,删除旧的日志文件,并创建新的日志文件,起到“转储作用”,可以为系统节省磁盘空间.logrotate是基于cron ...

  5. 系统自带的日志管理工具-rsyslogd

    系统自带的日志管理工具-rsyslogd 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志管理简介 1.什么是日志 系统日志是记录系统中硬件.软件和系统问题的信息,同时还可以 ...

  6. Java程序员须知的七个日志管理工具

    本文由 ImportNew - 赖 信涛 翻译自 takipiblog.欢迎加入翻译小组.转载请见文末要求. Splunk vs. Sumo Logic vs. LogStash vs. GrayLo ...

  7. web项目中日志管理工具的使用

    在web项目中,很多时候会用到日志管理工具,常见的日志管理用具有:JDK logging(配置文件:logging.properties) 和log4j(配置文件:log4j.properties) ...

  8. CentOS7日志管理工具 journalctl

    1.简介 日志管理工具journalctl是centos7上专有的日志管理工具,该工具是从message这个文件里读取信息. Systemd统一管理所有Unit的启动日志.带来的好处就是,可以只用jo ...

  9. logrotate日志管理工具与split文件切割命令

    概述 logrotate是一个Linux系统默认安装了的日志文件管理工具,用来把旧文件轮转.压缩.删除,并且创建新的日志文件.我们可以根据日志文件的大小.天数等来转储,便于对日志文件管理. logro ...

随机推荐

  1. IntentService用于服务中开启子线程的自动关闭

    package com.pingyijinren.test; import android.app.IntentService; import android.content.Intent; impo ...

  2. 【electron系列之一】创建右下角通知栏小图标

    electron 用Tray对象来实现右下角通知栏小图标 一.先引入app, BrowserWindow来实现浏览器功能,接着引入Tray, Menu来实现右下角 二. new Tray('./pag ...

  3. Jmeter执行java脚本结束时提示:The JVM should have exited but did not.

    使用jmeter对dubbo进行压测时,需要使用jmeter的sampler里的java请求 使用./jmeter.sh -n -t test.jmx -l test.jmx -o -e test后台 ...

  4. react 项目实战(七)用户编辑与删除

    添加操作列 编辑与删除功能都是针对已存在的某一个用户执行的操作,所以在用户列表中需要再加一个“操作”列来展现[编辑]与[删除]这两个按钮. 修改/src/pages/UserList.js文件,添加方 ...

  5. Start Xamarin——与Microsoft 的sales development manager的闲谈

    由于在Xamarin属于微软之前,就已经有Xamarin的账号,试用过破解版的.所以4月1号微软set Xamarin free之后.就收到了Xamarin的邀请试用邮件. 试用完了之后第二天.收到邮 ...

  6. Vue2.0生命周期和钩子函数的一些理解

    转自:https://segmentfault.com/a/1190000008010666 前言 在使用vue一个多礼拜后,感觉现在还停留在初级阶段,虽然知道怎么和后端做数据交互,但是对于mount ...

  7. 公用表表达式(CTE)

    公用表表达式(CTE,Common table expression)是和派生表很相似的另一种形式的表表达式,而且具有一些重要优势.CTE 是在 SQL Server 2005 中引入的,是ANSI ...

  8. A program to print Fahrenheit-Celsius table with floating-point values

    我的主力博客:半亩方塘 Another program to print Fahrenheit-Celsius table with decimal integer This program is p ...

  9. Codeforces Beta Round #96 (Div. 1) C. Logo Turtle DP

    C. Logo Turtle   A lot of people associate Logo programming language with turtle graphics. In this c ...

  10. android删除短信

    代码如下: //删除短信 getContentResolver().delete(Uri.parse("content://sms/#"),"address=?" ...