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. key通用操作【九】

    一.概述: 在该系列的前几篇博客中,主要讲述的是与Redis数据类型相关的命令,如String.List.Set.Hashes和Sorted-Set.这些命令都具有一个共同点,即所有的操作都是针对与K ...

  2. Python基础之 一 字典(dict)

    字典:是一种key - value的数据类型.语法:info = { key:value }特性:无序,key必须唯一(所以天生去重) 方法如下:del dict[key]:删除字典指定键len(di ...

  3. 镜像二叉树——剑指Offer

    https://www.nowcoder.net/practice/564f4c26aa584921bc75623e48ca3011?tpId=13&tqId=11171&tPage= ...

  4. 【转】c++中placement new操作符

    new:指我们在C++里通常用到的运算符,比如A* a = new A;  对于new来说,有new和::new之分,前者位于std operator new():指对new的重载形式,它是一个函数, ...

  5. 关于jQuery写插件及其演示

    关于写jQuery插件是非常有必要的.这是前端学习其中必须经过的一个过程 对于初次写插件先想清楚原理       (function($){  $.fn.yourName = function(opt ...

  6. 使用requireJS的shim參数,完毕jquery插件的载入

    没有requireJS框架之前,假设我们想使用jquery框架,会在HTML页面中通过<script>标签载入.这个时候jquery框架生成全局变量$和jQuery等全局变量.假设项目中引 ...

  7. java.lang.IllegalArgumentException: sheetName &#39;&#39; is invalid

    1.错误描写叙述 java.lang.IllegalArgumentException: sheetName '' is invalid - character count MUST be great ...

  8. mysql 將時間戳直接轉換成日期時間

    from_unixtime()是MySQL裏的時間函數 Sql代碼 select uid,userid,username,email,FROM_UNIXTIME(addtime,'%Y年%m月%d') ...

  9. java中a++和++a在较复杂的运算中分析

    关于连加和连减:http://blog.csdn.net/ieayoio/article/details/46431843 以下是一段普遍都了解的代码: public static void main ...

  10. The method getJspApplicationContext(ServletContext) is undefined for the type JspFactory的解决方法

    An error occurred at line: [31] in the generated java file: [/data/tmisnt/work/Catalina/localhost/_/ ...