GreatSQL社区

搜索

chongzh

Mysql如何仅通过mysqlbinlog解析binlog显示出明文sqltext

chongzh 已有 295 次阅读2023-9-13 18:01 |个人分类:Mysql 原理|系统分类:原理&产品解读

binlog_rows_query_log_events

​MySQL 5.6 and later,binlog_rows_query_log_events 系统变量仅影响基于行的日志记录。默认为off,启用后,它会导致服务器将信息日志事件(如行查询日志事件)写入其二进制日志。此信息可用于调试和相关目的。请注意,它确实会使二进制日志变大(变大的程度取决于查询的大小)

额外写入二进制日志的字节数通常为:(22-24 bytes header + sql本身

  • A 22-24 bytes header.
  • The query itself. ​

mysqlbinlog 解析binlog

如果您添加了两次verbose标志(-vv),那么在使用mysqlbinlog检查二进制日志时,也可以看到明文sqltxt注释

 mysqlbinlog  --no-defaults    /data/GreatSQL/binlog.000007 --base64-output=decode-rows -v -v  > sql.tx

show binlog events 显示出明文sqltxt

show binlog events in "binlog.000009" limit 20;   

在MySQL 5.6和更高版本中,可以在主库上启用binlog_rows_query_log_events。当使用基于行的事件记录事务时,这会将原始查询作为注释添加到二进制日志中。从库可以使用此注释来显示正在处理的查询,例如,查询由SHOW PROCESSLIST显示,例如:



评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 立即注册

合作电话:010-64087828

社区邮箱:greatsql@greatdb.com

社区公众号
社区小助手
QQ群
GMT+8, 2024-5-2 19:39 , Processed in 0.012910 second(s), 8 queries , Redis On.
返回顶部