测试delete删除数据--MySQL数据恢复

首先
1查看binlog日志是否开启

mysql> show variables like ‘log_%’;

在这里插入图片描述
如没有则打开mysql的bin log功能:
对于mysql也是支持增量备份,但要打开mysql的bin log功能。
我们修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安装目录/my.ini
我们在[mysqld]下面加上log-bin一行代码
[mysqld]
log-bin=mysql-bin

使用 service 启动:service mysql restart。

之后自己也做了一个简单的测试,对数据进行恢复,具体如下:

1、新建一个表
CREATE TABLE lynn.sn_test ( name VARCHAR( 10 ) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL , age INT( 3 ) NOT NULL ) ENGINE = MYISAM;

2、插入多条数据
INSERT INTO lynn.sn_test (name, age) VALUES (‘lynn1’, ‘1’);
INSERT INTO lynn.sn_test (name, age) VALUES (‘lynn2’, ‘2’);
INSERT INTO lynn.sn_test (name, age) VALUES (‘lynn3’, ‘3’);
INSERT INTO lynn.sn_test (name, age) VALUES (‘lynn4’, ‘4’);

3、查看数据并删除
mysql> select * from sn_test;
±------±----+
| name | age |
±--------±–+
| lynn1 | 1 |
| lynn2 | 2 |
| lynn3 | 3 |
| lynn4 | 4 |
±--------±----+
4 rows in set (0.00 sec)

mysql> delete from sn_test;
Query OK, 4 rows affected (0.00 sec)

mysql> select * from sn_test;
Empty set (0.00 sec)

4、mysqlbinlog恢复数据
mysqlbinlog mysql-bin.000006 > 1.sql
查看1.txt里面数据插入的纪录,把删除之前的数据进行恢复

在这里插入图片描述
因为删掉的只是一条数据,位置在718~764之间,所以用binlog查出插入的步骤。重新插入(恢复记录)。

从binlog日志恢复数据

a、恢复命令的语法格式:

mysqlbinlog mysql-bin.0000xx | mysql -u用户名 -p密码 数据库名

b、常用参数选项解释:

–start-position=875 起始pos点
      --stop-position=954 结束pos点
      --start-datetime=“2016-9-25 22:01:08” 起始时间点
      --stop-datetime=“2019-9-25 22:09:46” 结束时间点
      --database=ops指定只恢复ops数据库(一台主机上往往有多个数据库,只限本地log日志)

c、不常用选项:

-u --user=name 连接到远程主机的用户名

-p --password[=name]连接到远程主机的密码

-h --host=name 从远程主机上获取binlog日志

–read-from-remote-server从某个Mysql服务器上读取binlog日志

d、小结:实际是将读出的binlog日志内容,通过管道符传递给myslq命令。

这里使用命令 mysqlbinlog binlog.000004 --start-position=656 --stop-position=718 |mysql -u root -p

重新查询:已经有数据了。
查看日志,已经把delete的一条记录插入了。如果是删除多条或者drop,就要把破坏的数据按日志重新写入一遍。

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值