binlog2sql恢复mysql数据

1.查看数据库是否开启binlog

show variables like '%log_bin%';

状态是ON说明已经开启

开启binlog配置可以参考https://blog.csdn.net/letterss/article/details/89491552里面的my.cnf配置。

查询当前binlog文件

show master status;

可以看到当前的binlog文件是mysql-bin.000002

2.安装pip和binlog2sql

wget https://bootstrap.pypa.io/get-pip.py
python get-pip.py
pip -V (查看pip是否安装成功)

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

安装成功后,进入binlog2sql目录

cd /binlog2sql/binlog2sql

在此目录下执行以下命令查询误删大概时间的sql日志

python binlog2sql.py -h localhost -u root -p admin -d 数据库名 -t 表名 --start-file='mysql-bin.000002' --start-datetime='2019-6-26 14:00:00' --stop-datetime='2019-6-26 14:05:00'

可以看到这个时间我删除了一条数据,位置开始在6678,结束在7028,执行以下命令生成回滚sql,保存在根目录下面

python binlog2sql.py -h127.0.0.1 -P3306 -uroot -padmin -d数据库名 -t表名--start-file='mysql-bin.000002' --start-position=6678 --stop-position=7028 -B > /b.sql

可以看回滚的sql语句了。

如果数据表被drop了,我们只需要把表(包括表结构)重新建立,然后依照上面查询被删除前该表的的日志信息再回滚sql就行了。

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

今朝花落悲颜色

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值