木心

毕竟几人真得鹿,不知终日梦为鱼

导航

如何查看mysql binlog日志

 转载自:https://www.modb.pro/db/244063

 

 

 业内目前推荐使用的是row模式,准确性高,虽然说文件大,但是现在有SSD和万兆光纤网络,这些磁盘IO和网络IO都是可以接受的。

 

MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的。一般来说开启二进制日志大概会有1%的性能损耗(参见MySQL官方中文手册 5.1.24版)。二进制有两个最重要的使用场景:
    其一:MySQL Replication在Master端开启binlog,Mster把它的二进制日志传递给slaves来达到master-slave数据一致的目的。
    其二:自然就是数据恢复了,通过使用mysqlbinlog工具来使恢复数据。
    
二进制日志包括两类文件:二进制日志索引文件(文件名后缀为.index)用于记录所有的二进制文件,二进制日志文件(文件名后缀为.00000*)记录数据库所有的DDL和DML(除了数据查询语句)语句事件。

 

一、开启binlog

  在[mysqld] 区块设置/添加 log-bin=mysql-bin 确认是打开状态(值 mysql-bin 是日志的基本名或前缀名);

二、通过mysql的变量配置表,查看二进制日志是否已开启

  show variables like 'log_%';

 

 三、binlog日志内容查看

1、mysql查看binlog

show binary logs;  #获取binlog文件列表
show master status;#查看当前正在写入的binlog文件
show binlog events;   #只查看第一个binlog文件的内容
show binlog events in 'mysql-bin.000002'; #查看指定binlog文件的内容

2、使用mysqlbinlog工具

  mysqlbinlog是一个查看mysql二进制日志的工具,可以把mysql上面的所有操作记录从日志里导出,这个工具默认的安装路径为:/usr/local/mysql/bin/mysqlbinlog 可以通过find / -name "mysqlbinlog"命令查找mysqlbinlog的工具路径。

/usr/local/mysql/bin/mysqlbinlog --start-datetime="2013-03-01 00:00:00" --stop-datetime="2014-03-21 23:59:59" /usr/local/mysql/var/mysql-bin.000007 -r test2.sql

  binlog本身是一类二进制文件。二进制文件更省空间,写入速度更快,是无法直接打开来查看的。因此mysql提供了命令mysqlbinlog进行查看。一般的statement格式的二进制文件,用下面命令就可以

mysqlbinlog mysql-bin.000001

  如果是row格式,加上-v或者-vv参数就行,如

mysqlbinlog -vv mysql-bin.000001

posted on 2022-06-08 09:25  wenbin_ouyang  阅读(3067)  评论(0编辑  收藏  举报