东瑜

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
  135 随笔 :: 0 文章 :: 11 评论 :: 21万 阅读

作者:@张扶摇
本文为作者原创,转载请注明出处:https://www.cnblogs.com/zhangshengdong/p/11724922.html


目录

binlog2sql
1.安装
2.用户授权

binlog2sql

1.安装

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

2.用户授权

create user 'zsd'@'localhost' identified by 'zsd';
GRANT SELECT, REPLICATION SLAVE, REPLICATION CLIENT ON *.* TO 'zsd'@'localhost';

直接的sql场景

MariaDB [zsd]> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-09-29 14:21:15 |
+---------------------+
1 row in set (0.020 sec)

MariaDB [zsd]> create table test2(id int,name varchar(20));
MariaDB [zsd]> insert into test2 values (1,'张三');

MariaDB [zsd]> insert into test2 values (1,'李四');

MariaDB [zsd]> insert into test2 values (1,'王五');

MariaDB [zsd]> select * from test2;
+------+--------+
| id   | name   |
+------+--------+
|    1 | 张三   |
|    1 | 李四   |
|    1 | 王五   |
+------+--------+
3 rows in set (0.025 sec)

MariaDB [zsd]> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-09-29 14:22:32 |
+---------------------+
1 row in set (0.014 sec)



MariaDB [zsd]> delete from test2;
Query OK, 3 rows affected (0.063 sec)

MariaDB [zsd]> commit;
Query OK, 0 rows affected (0.008 sec)

MariaDB [zsd]> select now();
+---------------------+
| now()               |
+---------------------+
| 2019-09-29 14:22:50 |
+---------------------+
1 row in set (0.014 sec)

MariaDB [zsd]> select * from test2;
Empty set (0.012 sec)

查看被删除数据的位置和时间。

[root@oradb binlog2sql]# python binlog2sql.py -h127.0.0.1 -P3306 -uzsd -p'zsd' -dzsd -ttest2 --start-file='mysql-bin.000003'  --start-datetime='2019-09-29 14:22:32' --stop-datetime='2019-09-29 14:22:50'
# D;
DELETE FROM `zsd`.`test2` WHERE `id`=1 AND `name`='张三' LIMIT 1; #start 3717 end 3918 time 2019-09-29 14:22:43
DELETE FROM `zsd`.`test2` WHERE `id`=1 AND `name`='李四' LIMIT 1; #start 3717 end 3918 time 2019-09-29 14:22:43
DELETE FROM `zsd`.`test2` WHERE `id`=1 AND `name`='王五' LIMIT 1; #start 3717 end 3918 time 2019-09-29 14:22:43

加上-B参数,把delete语句变成insert语句。用于数据的恢复。

[root@oradb binlog2sql]# python binlog2sql.py -h127.0.0.1 -P3306 -uzsd -p'zsd' -dzsd -ttest2 --start-file='mysql-bin.000003'  --start-datetime='2019-09-29 14:22:32' --stop-datetime='2019-09-29 14:22:50' -B
INSERT INTO `zsd`.`test2`(`id`, `name`) VALUES (1, '王五'); #start 3717 end 3918 time 2019-09-29 14:22:43
INSERT INTO `zsd`.`test2`(`id`, `name`) VALUES (1, '李四'); #start 3717 end 3918 time 2019-09-29 14:22:43
INSERT INTO `zsd`.`test2`(`id`, `name`) VALUES (1, '张三'); #start 3717 end 3918 time 2019-09-29 14:22:43


感谢您的阅读,如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮。本文欢迎各位转载,但是转载文章之后必须在文章页面中给出作者和原文连接
posted on   东瑜  阅读(459)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
· 如何调用 DeepSeek 的自然语言处理 API 接口并集成到在线客服系统
\\页脚html代码
点击右上角即可分享
微信分享提示