恶心的mysqlbinlog解释binlog

很多人都知道mysqlbinlog 解释出来的binlog的 insert , update 是位置相反的 , 还有表字段都是@0 ... @数字 , 很恶心!!!

但没看到有人在 mysql8.0 功能需求时提问题出来 , 我也没有提出来 , 哈哈 !!! 

唯有自己翻译 frm 文件,获取表字段名称,字段出来咯 , 然后对应一下贴贴贴上去翻译出binlog的sql语句咯

FE 01 识别是否frm文件 , 固定

0A 是mysql版本识别位置table.cc 的 FRM_VER+3+ MY_TEST(create_info->varchar);  为6是5.0+版本mysql , 9 或者 10是有varchar的frm文件

0C 影射枚举值从 handler.h文件中 legacy_db_type , 0C 是 12 刚刚好是innodb类型 ,如下:

enum legacy_db_type
{
DB_TYPE_UNKNOWN=0,DB_TYPE_DIAB_ISAM=1,

......, DB_TYPE_INNODB,
......
};

03 00 , 反着看 00 30  mysql 5.0+ 总是为3 ,如果不是3,那就算了.....

00 10 , 反着看 10 00  IO_SIZE: 4096

明天待续补充............

时间: 2024-10-27 13:40:18

恶心的mysqlbinlog解释binlog的相关文章

mysqlbinlog 查看binlog时报错unknown variable 'default-character-set=utf8'

下午在排查MySQL主从同步问题时,想从主库的binlog中找一些线索,裸的binlog文件是无法直视的,mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysqlbinlog将binlog文件转换成人类可读的内容时却报错: [[email protected] log]$ mysqlbinlog mysql-bin.000004 mysqlbinlog: unknown variable 'default-character

mysqlbinlog 查看binlog日志时报错unknown variable 'default-character-set=utf8'

mysqlbinlog 查看binlog日志时报错unknown variable 'default-character-set=utf8' 在通过全备文件和增量binlog文件来导出sql文件,用以恢复完整的数据库时.由于裸的binlog文件是无法直视的,所以使用mysqlbinlog这个工具是用来查看binlog文件内容的(使用方式man mysqlbinlog查看),但是使用mysqlbinlog将binlog文件转换成人类可读的内容时却报错: [[email protected] dat

RDS for MySQL 通过 mysqlbinlog 查看 binlog 乱码

问题描述: 使用 mysqlbinlog -vv mysql-bin.000110 查看 RDS mysql 二进制文件发现类似如下结果: BINLOG ' MgI+UA8BAAAAZwAAAGsAAAAAAAQANS41LjI1LWxvZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAyAj5QEzgNAAgAEgAEBAQEEgAAVAAEGggAAAAICAgCAA== '/*!*/; 如下图所示: 解决办法: 其中标记的部分并

用Mysqlbinlog备份BinLog文件

默认情况下, mysqlbinlog读了二进制文件[BinLog]并以文本的方式呈现[text format].mysqlbinlog可以直接地从本地读取Log,也可以读取远程的Log[--read-from-remote-server],默认是直接输出,当然也可以保存到指定的输出文件中.如:

MySQL数据库中备份相关的两种工具--mysqlbinlog和mysqldump使用详解

一.mysqldump 对数据库做完整备份命令格式: #mysqldump  -h服务器ip  -u用户名  -p密码备份对象> /dbdir/文件名.sql   说明: 1.不指定路径存储在当前目录下: 2./dbdir需提前创建: 3.文件名要有标识性,备份文件不能重名,否则会覆盖.做计划任务时用date获取日期做文件名: 00 02 * * 1 mysqldump  -hlocalhost -uroot  -p123  --all- databases> /dbdir/db.a-$(da

Mysql之binlog日志说明及利用binlog日志恢复数据操作记录

众所周知,binlog日志对于mysql数据库来说是十分重要的.在数据丢失的紧急情况下,我们往往会想到用binlog日志功能进行数据恢复(定时全备份+binlog日志恢复增量数据部分),化险为夷! 废话不多说,下面是梳理的binlog日志操作解说: 一.初步了解binlogMySQL的二进制日志binlog可以说是MySQL最重要的日志,它记录了所有的DDL和DML语句(除了数据查询语句select),以事件形式记录,还包含语句所执行的消耗的时间,MySQL的二进制日志是事务安全型的. DDL-

mysql binlog 设置日志大小 保存时间

//本内容主要参考自   https://www.cnblogs.com/kevingrace/p/5907254.html   原文中包含如何恢复数据等操作 环境是centos 面板宝塔 使用命令行进入mysql的root //设置文件大小,单位是字节,下面换算是100M set global max_binlog_size=104857600; //设置文件保存天数,下面是保存7天 set global expire_logs_days = 7; 常用命令,前提都是在进入root账户后 查看

查看binlog文件的2种方式

1.使用show binlog events a.获取binlog文件列表 mysql> show binary logs; +------------------+-----------+ | Log_name | File_size | +------------------+-----------+ | mysql-bin.000005 | 1288 | | mysql-bin.000006 | 120 | +------------------+-----------+ mysql>

用Mysqldump实现全库备份+binlog的数据还原

随着业务量的增长,数据库也是成倍增长,原来一直使用的全库备份不再适合现在的数据库了,动辄就备份10G-20G,太占用磁盘空间,所以就考虑用更简洁更快速更节省磁盘空间的备份方法,这就想到了使用binlog日志来进行备份和恢复,下面是具体实施的方法: 环境介绍: 操作系统:Centos 7.2 数据库:Mysql 5.6 一.安装Mysql和改配置文件 安装就不具体介绍了,网上教程很多,配置文件需要添加以下选项: vim /etc/my.cnf log_bin = mysql-binlog    #