mysql不用删库跑路了,备份还原

自己也遇到过生产环境数据被删除的情况,数据没了只能给一个个用户解释,下面介绍用插件回滚任意时刻的数据

插件 :binlog2sql

安装binlog2sql前先安装git和pip:

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

第二步,git安装 binlog2sql


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


第三步:配置
 在mysql文件 my.cnf中修改

 server-id=123454 //5.7版本以上必须要
 log-bin=/var/log/mysql/mysql-bin.log
 binlog-format=row


第四步


  重启 mysql


  然后随便删除或修改数据库某张表的数据,/var/lib/mysql下会生成mysql-bin.000001的文件,如果这种类型文件太多,你并 不知道你操作的记录在哪个mysql-bin中,登录mysql查看

mysql不用删库跑路了,备份还原_第1张图片


第五步,解析binlog,在binlog2Sql目录下

 命令:python binlog2sql.py -h127.0.0.1 -P3306 -u你的用户名 -p'你的数据库密码’ -d你的数据库 -t你的表 --start-file='mysql-bin.000002'

 结果 DELETE FROM `qsyx`.`w_team` WHERE `team_name`='1213' AND `enable`=0 AND `id`=12 AND `image`='https://xqbstyle.oss-cn-hangzhou.aliyuncs.com/images/title.png' AND `created`='2018-05-05 11:08:02' LIMIT 1; #start 4 end 466 time 2018-05-17 16:03:50


第六步  生成回滚sql,并检查回滚sql是否正确
 命令: python binlog2sql.py -h127.0.0.1 -P3306 -u你的用户名 -p'你的数据库密码’ -d你的数据库 -t你的表 --start-file='mysql-bin.000002' --start-pos=4 --end-pos=466 -B
 结果:INSERT INTO `qsyx`.`w_team`(`team_name`, `enable`, `id`, `image`, `created`) VALUES ('1213', 0, 12, 'https://xqbstyle.oss-cn-hangzhou.aliyuncs.com/images/title.png', '2018-05-05 11:08:02'); #start 4 end 466 time 2018-05-17 16:03:50


第七步 确认回滚sql正确,执行回滚语句。登录mysql,数据回滚成功。4
  命令  python binlog2sql.py -h127.0.0.1 -P3306 -u你的用户名 -p'你的数据库密码’ -d你的数据库 -t你的表 --start-file='mysql-bin.000002' --start-pos=4 --end-pos=466 -B | mysql -h127.0.0.1 -P3306 -u你的用户名 -p'你的数据库密码’
  结果  mysql: [Warning] Using a password on the command line interface can be insecure.

你可能感兴趣的:(mysql不用删库跑路了,备份还原)