一.概述

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

mysqlbinlog的语法如下:

mysqlbinlog [options] log-files log-files2...

其中options有很多选项,常用如下:

选项

说明

-d, --database=name

指定数据库名称,只列出指定的数据库相关操作。

-o, --offset=#

忽略掉日志中的前n行命令

-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=#

指定位置间隔内的所有日志

1.1 开启binlog日志

默认情况下是未打开binlog日志,可以通过以下二种方式查看:

mysql> show binarylogs;

ERROR1381 (HY000): You are not using binarylogging--或者这样查看

mysql> show variables like '%log_bin%

开启binlog日志,修改my.cnf文件重启mysql服务,如下所示:

再次查询binlog日志状态:

二. 使用mysqlbinlog查看日志

--先在test表中插入一条数据退出。

mysql> insert into a values('testbinlog');

--查看binlog位置

[root@hsr mysql]# cd/var/lib/mysql

[root@hsr mysql]#lsmysql-bin.000001 mysql-bin.index

2.1 使用mysqlbinlog查看日志 不加任何options参数

[root@hsr~]# cd /usr/local/mysql/bin

[root@hsr bin]# ./mysqlbinlog /var/lib/mysql/mysql-bin.000001

上面的日志文件除了创建表和删除表的sql外,操作数据库的语句都加密了。

2.2 使用参数"--base64-output=decode-row -v"查看具体的sql语句,如下命令

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001

上图中 at 291是插入语句的开始位置, at 384是插入语句的结束位置。如果后续该表数据丢失,可以根据这两个地方执行恢复。也可以根据开始时间和结束时间来恢复,后面再讲日志时具体介绍。

2.3  加-d选项,将只显示对test数据库的操作日志

[root@hsr bin]# ./mysqlbinlog   /var/lib/mysql/mysql-bin.000001 -d test

2.4  加-o选项, 忽略掉日志中的前n个操作。演示下

--插入三条数据

INSERT INTO a VALUES('testbinlog2')INSERT INTO a VALUES('testbinlog3')INSERT INTO a VALUES('testbinlog4')[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -d test -o 14

上图显示日志生成后,从at 898行开始显示。 14个操作代表:日志显示跳过14个at。

2.5 加-r选项

将输出的文本格式日志输出到指定文件,下面将文件结果输出到文件resultfile中。

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -r resultfile

[root@hsr bin]#more resultfile

2.6 加-s 将内容进行简单显示

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 -s

如上图所示,简单显示后,没有了详细的sql语句。

2.7 加"--start-datetime--stop-datetime"显示9:00 ~12:00之间的日志

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001

--start-datetime='2018/08/30 09:00:00' --stop-datetime='2018/08/30 12:00:00'

如上图所示:最后显示的时间截是1535600091, 转换后是2018-08-30 11:34:51。 开始和结束日期可以只写一个。

2.8 加"--start-position=#和--stop-position=#" 和日期范围类似,不过更精确

[root@hsr bin]# ./mysqlbinlog --base64-output=decode-row -v /var/lib/mysql/mysql-bin.000001 --start-position=944

mysql 数据库日志管理工具_mysql mysqlbinlog日志管理工具使用教程相关推荐

  1. MySQL数据库——5分钟带你了解日志管理、数据备份与恢复!!!

    MySQL数据库--5分钟带你了解日志管理.数据备份与恢复!!! 前言 一.MySQL日志管理 1.1 日志的分类 1)错误日志 2) 通用查询日志 3) 二进制日志(binlog) 4) 慢查询日志 ...

  2. mysql第三方工具binlog_mysql 开发进阶篇系列 33 工具篇(mysqlbinlog日志管理工具)

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

  3. mysql 二进制日志 解析c++_mysql二进制日志文件恢复数据库

    二进制日志的文件的作用 mysql二进制日志文件用来记录所有用户对数据库操作,即记录用户对数据库操作的sql语句.如果有此文件,当数据库发生意外时,可以通过此文件查看到用户在此文件记录的时间段内用户所 ...

  4. MySQL数据库之全量+增量+二进制日志的备份与恢复

    一.简介数据的备份与恢复 1.为什么备份? 灾难恢复:人为错误.硬件故障(冗余).软件故障(bug).自然灾害.黑客攻击.误操作.-: 测试: 2.备份时应该注意些什么? 能容忍最多丢失多少数据: 恢 ...

  5. mysql配置日志老化配置_mysql中日志的配置与分析

    默认情况下,如果日志没有配置,则只记录错误日志,记录到syslog,配置文件 /etc/mysql/conf.d/mysqld_safe_syslog.cnf (ubuntu下) [mysqld_sa ...

  6. mysql二进制日志内容说明_MySQL二进制日志相关问题详细说明

    软件安装:装机软件必备包 SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出& ...

  7. 开源日志审计系统_一文掌握mysql数据库审计特点、实现方案及审计插件部署教程...

    概述 数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险行为进行告警,对攻击行为进行阻断.它通过对用户访问数据库行为的记录.分 ...

  8. mysql日志查询指令_MySQL查询日志总结

    MySQL查询日志介绍 MySQL的查询日志记录了所有MySQL数据库请求的信息.无论这些请求是否得到了正确的执行.默认文件名为hostname.log.默认情况下MySQL查询日志是关闭的.生产环境 ...

  9. mysql日志文件名字_MySQL各类日志文件相关变量介绍

    文章转自:http://www.ywnds.com/?p=3721 查询所有日志的变量 1 mysql>show global variables like'%log%'; GLOBAL表示查全 ...

最新文章

  1. LB负载均衡集群 - NAT
  2. HTML 制作简历表单
  3. python经典题库和答案_Python99道经典练习题答案.docx
  4. 以太坊源代码 - eth_call以及eth_sendTransaction区别
  5. 2017cad光标大小怎么调_2017版CAD画直线时怎么设置光标处有显示长度和角度的?...
  6. 错误: -source 1.6 中不支持 diamond 运算符的解决办法
  7. 着眼产业合作、情报分享 网易云易盾加入云清联盟
  8. 成也史玉柱,败也史玉柱
  9. 朋友之间最舒服的关系
  10. 第一次任务完成经历的总结
  11. PHP 两个多维数组根据某个键的值进行组合排序的几种思路
  12. c语言计次循环首,易语言内存读取获得当前PC已经登陆微信号的代码
  13. linux内核去掉pty,请问如何升级内核?高手请进!!!
  14. Java高级篇-----jdk1.8新特性
  15. 如何使用蒙特卡洛(Mento Carlo)方法计算PI(Π)值?(C语言实现)
  16. c语言中3次方函数图像,三次函数的性质
  17. 基金、社保和QFII等机构的重仓股排名评测
  18. 如何快速完成事业单位继续教育
  19. 2021苏州高考 学校成绩查询,2021苏州市地区高考成绩排名查询,苏州市高考各高中成绩喜报榜单...
  20. 计算机实验室管理员岗位要求,实训室管理员岗位职责有哪些

热门文章

  1. mysql5.1 utf8_编译安装mysql 5.1使用utf8解决乱码问题
  2. java list 元素去重_小猿圈Java开发之list按照元素某个字段去重详解
  3. 编辑中的word变成只读_文档设定密级,word中是这样加密,看一篇就精通了
  4. OpenShift 4 之 高可靠运行MS SQL Server 2019数据库
  5. android 应用置顶到最前端_uniApp / 小程序实现一个view滚动到一定高度置顶显示
  6. delphi接口带上请求头是什么意思_Python接口自动化之Token详解及应用
  7. 函数扩展(函数拦截)
  8. 微信小程序获取上一页路由 获取从哪个页面跳转进来的
  9. mysql drop 几十g的表_MySQL Drop 大表的解决方案
  10. vue 实现文本的拖拽_基于Vue实现拖拽功能