首页 / 数据库 / MySQL / MySQL数据丢失后利用binlog恢复有效数据的方法
首先开启binlog日志,编辑my.cnf文件,添加log-bin = mysql-bin #开启二进制日志并指定路径及文件名,不设置的话默认在数据存放目录下,名称为hostname-bin.xxxxx建立一个测试数据库,创建一个表格,里面随便插入一些数据mysql > create database student;
mysql > use student;
mysql > create table student(id int,name varchar(10),age int);
mysql > insert into student values ("1","tanglu","28"),("2","zouxiaolu","28"),("3","beibei","28");进行一次完整的备份,这样前3条数据已经做了备份mysqldump -u root -p student > student.sql继续插入4、5、6三条数据mysql> insert into student values("4","doudou","8");
Query OK, 1 row affected (0.01 sec)mysql> insert into student values("5","mengmeng","28");
Query OK, 1 row affected (0.00 sec)mysql> insert into student values("6","haha","10");
Query OK, 1 row affected (0.01 sec)误操作删除了之前创建的数据mysql> delete from student ;重启一次数据库或者执行数据库语句flush-logs来获得一个新的二进制日志文件,这样故障日志都在之前文件里mysql > flush logs;利用第一次的备份恢复数据,这样前面3条数据就恢复成功mysql -u root -p student < student.sql查看binlog日志,分析一些正常操作的position位置或者是操作时间,然后导出这部分日志并恢复mysqlbinlog hostname-bin.000001
mysqlbinlog server1-bin.000003 --start-position=1170 --stop-position=1294 > server2.sql最后进入数据库查看数据已经按条目恢复!关于使用MySQL binlog对数据进行恢复的实战 http://www.linuxidc.com/Linux/2016-01/127808.htmMySQL通过binlog来恢复数据 http://www.linuxidc.com/Linux/2015-12/126897.htmMySQL使用备份和binlog进行数据恢复 http://www.linuxidc.com/Linux/2014-12/110875.htmMySQL数据恢复--binlog http://www.linuxidc.com/Linux/2014-03/97907.htmMySQL中binlog日记清理 http://www.linuxidc.com/Linux/2011-02/32017.htm如何安全删除MySQL下的binlog日志 http://www.linuxidc.com/Linux/2013-06/86527.htmMySQL--binlog日志恢复数据 http://www.linuxidc.com/Linux/2013-04/82368.htmMySQL删除binlog日志及日志恢复数据的方法 http://www.linuxidc.com/Linux/2012-12/77072.htmMySQL binlog三种格式介绍及分析 http://www.linuxidc.com/Linux/2012-11/74359.htmMySQL 利用binlog增量备份+还原实例 http://www.linuxidc.com/Linux/2012-09/70815.htmMySQL删除binlog日志及日志恢复数据 http://www.linuxidc.com/Linux/2012-08/67594.htm本文永久更新链接地址