一般都可以通过以下命令将二进制格式的binlog转换为方便查看的文本输出。下面会详细讲解各个参数的作用。

mysqlbinlog --no-defaults --base64-output=DECODE-ROWS -vv binlog.000130

目录

MySQL的二进制日志由包含“ 事件 ”(event)的文件组成,这些 事件描述了对数据库内容的修改。服务器以二进制格式写入这些文件。要以文本格式显示其内容,请使用 mysqlbinlog实用程序。你还可以使用 mysqlbinlog显示复制设置中从属服务器写入的中继日志文件的内容,因为中继日志的格式与二进制日志相同

statement格式记录的二进制日志

mysqlbinlog mysql-bin.000021

在binlog的格式为statement时,使用上面的命令查看二进制文件,会显示出SQL语句,其他输出的详细说明如下。

截取输出中的一段进行说明

at 652 表示该时间的起始位置 或者 该时间 event在为禁止文件中的偏移量

200508 21:55:22   该日期和时间指示该语句在事件执行(发生)的服务器上何时启动。为了进行复制,此时间戳会传递到从属服务器。

server id 101   事件执行(发生)的服务器的值。

end_log_pos 652  指示下一个事件的开始位置(即,当前事件的结束位置+ 1)

Query 事件类型

thread_id=3  指示哪个线程执行了事件

exec_time=0 是在主服务器上执行事件所花费的时间

复制延迟的指标 是如何计算的 On a slave, it is the difference of the end execution time on the slave minus the beginning execution time on the master. The difference serves as an indicator of how much replication lags behind the master

error_code=0  指示执行事件的结果。零表示没有错误发生。

update t set user_name='yanhaihang' where id = 5 可以看到执行的SQL语句

row格式的二进制日志

二进制日志格式为row格式,binlog中会有row events,比如 Update_rows event

mysqlbinlog     mysql-bin.000022

当使用上面的命令查看二进制日志文件时,默认情况下 ,二进制日志是以编码为base-64字符串的binlog语句显示这些行事件,显示如下(看不懂数据库到底做了什么 o(╥﹏╥)o)

mysqlbinlog   -v    mysql-bin.000022

加上参数 -v 或--verbose 可以 以注释的伪SQL语句 去看这些行事件

mysqlbinlog   -v -v   mysql-bin.000022

使用两次 -v -v 或者 -vv 或者  --verbose --verbose可以额外显示字段的类型以及字段的一些元数据信息。更加详细了

mysqlbinlog   -vv  --base64-output=DECODE-ROWS   mysql-bin.000022

加上--base64-output=DECODE-ROWS 选项后,行事件的binlog语句(那些看不懂的字符串)就不再显示。(*^▽^*)

选项 --base64-output=DECODE-ROWS -v  组合成为一个只看注释的伪SQL便捷组合。

--base64-output=never 如果为never 则遇到行事件报错退出

ERROR: --base64-output=never specified, but binlog contains a Update_rows event which must be printed in base64.

其他选项参数

--no-defaults  不会去读取一些默认的配置文件,因为读取这些文件的时候使用mysqlbinlog会报错。加上这个选项后可以避免读取配置文件而报错

更多的选项参考官方文档

mysql二进制文件如何查看_使用mysqlbinlog查看MySQL二进制文件内容相关推荐

  1. mysql 二进制日志查看_使用mysqlbinlog查看二进制日志

    (一)mysqlbinlog工具介绍 binlog类型是二进制的,也就意味着我们没法直接打开看,MySQL提供了mysqlbinlog来查看二进制日志,该工具类似于Oracle的logminer.my ...

  2. mysql二进制文件转文本文件_使用mysqlbinlog把mysql二进制文件转换文本

    MYSQL启用日志 [root@jianshe99]# whereis my.ini [root@jianshe99]# vi /etc/my.cnf [mysqld] datadir=/var/li ...

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

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

  4. mysql qps如何查看_一款查看mysql QPS的脚本

    本脚本黏贴就可以使用绝对不坑人!!! (此脚本来源如一位大神网友) 执行效果: 脚本: #!/bin/bash PW=Eqipay20150504@ mysqladmin -P3306 -uroot ...

  5. mysql导出二进制日志_使用mysqlbinlog提取二进制日志

    MySQL binlog日志记录了MySQL数据库从启用日志以来所有对当前数据库的变更.binlog日志属于二进制文件,我们可以从binlog提取出来生成可阅读的SQL语句来重建当前数据库以及根据需要 ...

  6. mysql备份与恢复实验报告_实验报告六MYSQL备份和恢复.doc

    实验报告六MYSQL备份和恢复.doc 班级:10应用 姓名:张红珍 学号:2010081133 指导老师:钟老师 实验六 MYSQL备份与恢复 实验平台:安装MYSQL数据库的PC 实验目的:1.熟 ...

  7. mysql connection是什么_记一次MySQL出现too many connection

    今天中午的时候突然接到报警,MySQL连接数暴增..本来设置的max_conntion=6000, 这个数值连接已经够用.接到报警速度连接服务器连接mysql总是报如下错误: [mysql@local ...

  8. golang mysql连接池原理_[Go] golang实现mysql连接池

    golang中连接mysql数据库,需要使用一个第三方类库github.com/go-sql-driver/mysql,在这个类库中就实现了mysql的连接池,并且只需要设置两个参数就可以实现 一般连 ...

  9. mysql 数据库字符集转换_字符集介绍及mysql数据库编码转换

    一.字符集介绍: 1.ASCII ASCII是英文American Standard Code for Information Interchange的缩写,美国标准信息交换代码是由美国国家标准学会( ...

  10. mysql 查询编码转换_字符集介绍及mysql数据库编码转换

    一.字符集介绍: 1.ASCII ASCII是英文American Standard Code for Information Interchange的缩写,美国标准信息交换代码是由美国国家标准学会( ...

最新文章

  1. 实时音视频的超级风口,开发者的机会在哪里?
  2. 全球奖金最高的科学奖项颁发:黑洞拍摄团队、肥胖症治疗等获奖;2位清华北大校友入围...
  3. linux内核提供的内存操作函数
  4. SetNoneScaleMutableGraph
  5. 2018蓝桥杯省赛java_蓝桥杯2018年A组省赛
  6. 微信小程序基础架构浅析
  7. Arcgis Server初学笔记(一)
  8. [Linux]信号量
  9. bigquery_在BigQuery中链接多个SQL查询
  10. 想快速拥有个人网站?来试试这个...
  11. restify mysql_[菜鸟试水]关于Nodejs搭建后台API服务(Mysql-Restify)[下]
  12. oracle跨数据库用户操作,ORACLE跨数据库操作,DBLINK的使用
  13. 009Maven_建立私服——报错问题
  14. bzoj 2428: [HAOI2006]均分数据
  15. 解决VSCode下载慢或下载失败的问题
  16. 项目难题:Java几分钟处理完30亿个数据?
  17. 腾讯云:开发者实验室
  18. SSM整合篇--JSP介绍
  19. Nordic Homekit开发--Homekit广播数据解析
  20. 学习游戏开发,先学OpenGL再学Direct3D还是直接学习Direct3D?

热门文章

  1. 检测相机视野中的物体运动并用Mask显示
  2. Atitit Major island groups and archipelagos 主要的岛群和群岛目录资料目录1. 岛群 波利尼西亚(Polynesia, 美拉尼西亚(Melanesia,
  3. Atitit flowable使用总结 目录 1. flowable 1 1.1. 添加依赖 1 1.2. Flowable的启动接口 2 2. 还是使用简单流程来完成业务流程的学习, 2 2.1.
  4. Atitit 小程序前端api艾提拉总结 索引 目录 1. 基础 37 2 1.1. 系统 38更新 38小程序 39调试 41定时器 42 2 2. 路由 43 2 3. 界面 44 2 3.1.
  5. paip.oracle10g dmp文件导入总结
  6. paip.System.out.println乱码解决
  7. eclipse插件开发流程
  8. Rust: Rust 异步入门 (作者洋芋,来自Rust语言中文社区)
  9. 基金境外设立子公司将迎新规 监管给出24个月过渡期
  10. Rust:Programming Rust:所有权