mysql-binlog2sql

本文介绍如何安装和使用binlog2sql工具,包括安装步骤、用户权限配置、二进制日志要求及参数说明,并通过实例展示了如何获取执行与回滚SQL。

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

一、部署

1.安装binlog2sql前先安装git和pip:

yum -y install epel-release 
yum -y install git  python-pip

2.安装binlog2sql:

git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql
pip install -r requirements.txt

3.用户权限

SELECT, REPLICATION SLAVE, REPLICATION CLIENT

4.二进制日志要求

binlog_format = row
binlog_row_image = full

二、使用

1.参数表

参数解释可选项
-hhost地址 
-u用户名 
-p密码 
-P端口 
--start-file起始二进制文件 
--start-position起始pos点 
--stop-file终止二进制文件 
--stop-position终止pos点 
-d数据库名 
-t表名 
--only-dml只显示dml,忽略ddl 
--sql-typesql类型delete,insert,update
--help帮助项 
--stop-never连续解析二进制日志,直到最后 
-K, --no-primary-key生成不带主键的插入sql 
-B, --flashback闪回数据到起始二进制文件的起始节点 
--back-interval每1000个sql回滚块的睡眠时间,如果不设置则为0 

2.具体使用范例

2.1 建表

create table test_1(
id int(10) not null auto_increment primary key,
user_name varchar(20),
user_age tinyint(1),
user_info varchar(50)
);

2.2 插入数据

insert into test_1(user_name,user_age,user_info) values('zhang',12,'acd'),('zhangasd',12,'acd'),
('zhang',22,'acd'),('zhaxng',12,'xc'),('zxchang',13,'acd'),('zhdfang',12,'acd'),
('zhanccg',25,'acd'),('zhang',12,'acd'),('zhaxcng',12,'acd'),('lizhang',12,'acd'),('zhang',12,'we'),
('zhxvang',12,'acd'),('zhazng',15,'dxv'),('zhadng',17,'zdv'),('zhqzang',12,'zdcs'),
('zhang',12,'acasdad'),('zdvsdasd',18,'aecd'),('zhsdang',12,'dddd'),('zhasdng',32,'acqqqd'),('zsdhang',32,'aczzzzd'),
('zsdhang',14,'adddcd'),('zhang',16,'acddd'),('zahang',31,'acd'),('zahang',52,'fedf'),('zhang',42,'acrfwed'),
('zhxdang',18,'adfscd'),('zhadang',22,'axcvcd'),('zhxdang',32,'asdacd'),('zhaxdng',19,'acasd');

2.3 操作数据数据进行测试

# 位置:mysql-bin.000001,90348556
delete from test_1 where id=19;
# 位置:mysql-bin.000001,90348854
update test_1 set user_age=33 where id>16 and and<20;
# 位置:mysql-bin.000001,90648971
insert into test_1(user_name,user_age,user_info) values('lisi',22,'cb'),('feiren',32,'amd'),('niupi',22,'acd'),('nicai',12,'xc');
# 位置:mysql-bin.000001,90649310

2.4 binlog2sql的使用

# 获得执行的sql
python3 binlog2sql.py -hlocalhost -P3306 -urb_user -p -d rollback_test -t test_1 --start-file 'mysql-bin.000001' --start-position=90348556 --stop-file='mysql-bin.000001' --stop-position=90348854 > 1.sql

# 获得回滚的sql
 python3 binlog2sql.py -hlocalhost -P3306 -urb_user -p -d rollback_test -t test_1 -B --start-file 'mysql-bin.000001' --start-position=90348556 --stop-file='mysql-bin.000001' --stop-position=90348854 > 2.sql

# 获得原始为delete语句的sql的回滚语句
 python3 binlog2sql.py -hlocalhost -P3306 -urb_user -p -d rollback_test -t test_1 -B --start-file 'mysql-bin.000001' --start-position=90348556 --stop-file='mysql-bin.000001' --stop-position=90649310 --sql-type 'delete'> 3.sql

大概的使用场景就是这样了,希望能帮到你 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值