binlog2sql工具的使用

Linux: CentOS6

mysql version: mysql5.6.35

参考:网址:

https://www.cnblogs.com/ivictor/p/6418409.html

场景:数据库被业务进行sql注入,修改了表中某一列数据。

但是没找到合适的数据库备份集,于是想到了解析binlog日志然后进行sql解析的方法来进行恢复本张表。

1.安装binlog2sql

安装过程有些麻烦,下面是具体的安装步骤:

yum install python-setuptools -y

yum -y install git

git clone https://github.com/danfengcao/binlog2sql.git && cd binlog2sql

pip包需要使用tar.gz包进行安装,手工下载

# tar zxvf pip-10.0.1.tar.gz 

# cd pip-10.0.1

# python setup.py install

yum -y install pymysql

cd /home/mysql/binlog2sql

pip install -r requirements.txt

 pip install PyMySQL


2. 把binlog日志解析为sql语句,如下:

-pxxxxpython binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.01 -P4000 -uroot -pxxxx  -d xxxx-t xxx --start-file='mysql-bin.000018' > userdb18.sql

python binlog2sql/binlog2sql/binlog2sql.py -h127.0.0.01 -P4000 -uroot -pxxxx  -d xxxx-t xxxx --start-file='mysql-bin.000019' --stop-position= > userdb19.sql


3.逆向解析sql语句,即当时,delete的变成insert, 之前insert的变成delete

python binlog2sql/binlog2sql/binlog2sql.py --flashback -h127.0.0.01 -P4000 -uroot -pxxxx -d xxxx -t xxxx --start-file='mysql-bin.000019' --start-position=384693693 --stop-position=529503333> userdb.sql

参数说明:

参数和mysqlbinlog的非常擂同,到时搜一下就好了。


4.新建一个实例,把数据导入后,重新进行恢复,然后让业务人员把新的数据和老数据对比一下,即可以查看。

发布了145 篇原创文章 · 获赞 21 · 访问量 37万+

猜你喜欢

转载自blog.csdn.net/wxc20062006/article/details/80769574