mysqlbinlog工具_mysqlbinlog-日志管理工具

MySQL的二进制日志binlog默认格式为row,用于记录数据库变更。mysqlbinlog工具能将binlog内容转化为文本,便于查看和分析。通过设置binlog_rows_query_log_events,可以记录SQL执行记录。文章介绍了mysqlbinlog的常用选项及实例应用,包括创建新日志并展示DML操作的SQL记录。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL服务器生成的二进制日志保存在binlog文件中。要以文本格式显示binlog内容可以使用mysql自带的mysqlbinlog日志管理工具解析。

二进制日志格式(binlog_format)在MySQL 5.7.7和更高版本中,默认为row,在row格式下我们要查找历史的SQL记录,需要开启binlog_rows_query_log_events来记录执行过的SQL。

mysqlbinlog用法如下:

shell> mysqlbinlog [options] log_file1 log_file2…

常用选项如下:

--base64-output=name:决定binlog输出格式选项,auto--自动显示binlog语句所有格式;never--禁止显示binlog语句;decode-rows--禁止显示binlog语句--database=db_name, -d db_name:只显示指定数据库的日志--verbose,-v:从行事件中重建伪 sql 语句--verbose --verbose, -vv:从行事件中重建伪 sql 语句,添加对数据类型的注释--start-datetime=datetime --stop-datetime=datetime:指定日期间隔的日志--start-position=N --stop-position=N:指定事件位置间隔的日志--skip-gtids[=(true|false)] :不显示GTID

举例说明mysqlbinlog的使用:

1、创建新日志,对mysql和test数据库做DML操作

mysql> flush logs;Query OK, 0 rows affected (0.01 sec)mysql> create table mysql.test(id int primary key) engine=myisam;Query OK, 0 rows affected (0.40 sec)mysql> insert into mysql.test values(1);Query OK, 1 row affected (0.00 sec)mysql> create table test.test(id int primary key) engine=myisam;Query OK, 0 rows affected (0.37 sec)mysql> insert into test.test values(1);Query OK, 1 row affected (0.33 sec)

a.不加参数显示的binlog日志

mysqlbinlog mysql-bin.000017
b5b117a4e8a6eae4955420f0a3b7ccda.png

b.加参数显示的binlog日志的SQL执行记录

mysqlbinlog mysql-bin.000017 -d test --base64-output=decode-rows --skip-gtids -vv | grep -B 1 -i 'insert into'
3b0408ec221cf93757ee10961c8a0f2e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值