误操作删除数据之---恢复操作

使用语句模式恢复数据

1、

#修改配置文件
1、[root@oldboy etc]# vim my.cnf
  -log-bin=mysql-bin

2、

#重启mysql
[root@oldboy ~]# /etc/init.d/mysqld restart

3、

#记录位置点
[root@oldboy ~]# mysql -uroot -p1
    -mysql> creatr database binlog;
    -mysql> use binlog
    -mysql> create table binlog(id int);
    -insert into binlog values(1),(2),(3);
    -mysql> show master status;  #查看位置点

4、

[root@oldboy ~]# cd /usr/local/mysql/data/
-查看
-mysqlbinlog mysql-bin.000001
#删库后使用 位置点 恢复:
[root@oldboy ~]# mysql -uroot -p1
    -mysql> use binlog
    -mysql> show tables;
    -drop table binlog;
    -\q  #退出mysql

6、

#截取 起始位 和 终止位
[root@oldboy ~]# cd /usr/local/mysql/data/
[root@oldboy data]# mysqlbinlog mysql-bin.000001
#起始位 和 终止位
[root@oldboy data]# #220 553
[root@oldboy data]# mysqlbinlog --start-position=220 --stop-position=553 mysql-bin.000001

7、

#导入文件
[root@oldboy data]# mysqlbinlog --start-position=220 --stop-position=553 mysql-bin.000001 > /tmp/binlog.sql

8、

#恢复数据库
[root@oldboy data]# mysql -uroot -p1 < /tmp/binlog.sql

9、

#查看
-[root@oldboy data]# mysql -uroot -p1
-mysql> use binlog
-mysql> show tables;
-mysql> select * from binlog;

使用行级模式恢复数据:

1、

[root@oldboy ~]# cd /etc

2、

[root@oldboy etc]# vim my.cnf
  -binlog_format=row

3、

#重启mysql
[root@oldboy ~]# /etc/init.d/mysqld restart

4、

#连接MYsql
[root@oldboy etc]# mysql -uroot -p1

5、

#记录位置点
mysql> show master status;
#可以看到
#变为新的对象: mysql-bin.000002

6、

#创建数据库并插入数据
mysql> create database row;
mysql> use row
mysql> insert row values(1),(2),(3);

7、

修改数据
mysql> update row set id=10 where id=2;
mysql> select * from row;

8、

#删除数据(模拟误操作)
mysql> delete from row where id=3;
#删表
mysql> drop table row;
#删库
mysql> drop database row;

现在有三种状态:1、1 2 3; 2、1 10 3 ; 3、1 10

例如:恢复第二种 1 10 3 的状态:

10、查看起始位 和 终止位

-[root@oldboy ~]# cd /usr/local/mysql/data/
-[root@oldboy data]# mysqlbinlog mysql-bin.000002

11、截取 起始位 和 终止位 并导入文件

-[root@oldboy data]# mysqlbinlog --start-position=120 --stop-position=697 mysql-bin.000002 > /tmp/row.sql

12、恢复

-[root@oldboy ~]# mysql -uroot -p1
-mysql> source /tmp/row.sql

13、查看结果:

-mysql> show databases;
-mysql> use row;
-mysql> show tables;
-mysql> select * from row;

 

posted @ 2019-04-24 12:24  萤huo虫  阅读(226)  评论(0编辑  收藏  举报