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

最新文章

  1. js连等赋值
  2. struts2-上传文件
  3. spring configuration 注解
  4. jdk线程池主要原理
  5. CSS各种定位详解
  6. [BZOJ 1497][NOI 2006]最大获利(最大权闭合子图)
  7. Spring day01
  8. MySQL(14):Select-limit(限制获得的记录数量)
  9. ACCESS 里面的坑
  10. 转:IT巨头纷纷“卡位” 智能语音成人机交互入口必争之地
  11. 零基础入门学习javase,应该怎么学?这是我给你的一个建议
  12. Word转MD文件
  13. Centos7之Systemd(Service文件)详解
  14. event对象的clientX,offsetX,screenX,pageX
  15. Python+Pandas 读取Oracle数据库
  16. php访问SQLserver时加载的dll
  17. linux nexus bulid
  18. http 之 HTTP_X_FORWARDED_FOR
  19. python-flask-ssti(模版注入漏洞)
  20. Anaconda多版本Python管理以及TensorFlow版本的选择安装

热门文章

  1. mvc ajax跳转controller 的路径
  2. C通过JNI反向调用JAVA程序方法
  3. Qt ini文件
  4. 章节十四、2-自动完成功能-Autocomplete
  5. LeeCode——Combine Two Tables
  6. bat脚本弹出消息示例(msg命令详细解释)
  7. 关于oracle PL/SQL存储过程 PLS-00905 object is invalid,statement ignored问题的解决
  8. 09事件传递参数-封装网络请求api get和post合并整合在一起
  9. django rest framework 过滤 lim分页
  10. luogu P1904 天际线