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

2023年 9月 13日 63.5k 0

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显示,例如:

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论