MySQL恢复误删的数据

这世界上有后悔药

-www.houhuiyao.cc 后悔药MySQL数据恢复 站长语

数据是无价的,丢了就有可能真丢了。所以,备份 备份 备份,每天备份。重要的话说三遍。

下面演示下如何通过MySQL的binlog日志恢复误删的数据:

/*首先查看一下数据表中的数据*/

MariaDB [drop_test]> select * from python_test;

+----+-----------+------------+

| id | name | class_time |

+----+-----------+------------+

| 1 | 字典 | 3 |

| 2 | 列表 | 2 |

| 3 | 函数 | 5 |

| 4 | 装饰器 | 2 |

| 5 | 迭代器 | 2 |

+----+-----------+------------+

5 rows in set (0.00 sec)

/*备份*/

mysqldump -uroot -p111111 -B drop_test >drop_test.sql

/*再插入数据后删除数据库*/

MariaDB [drop_test]> INSERT INTO python_test(id,name,class_time) value(6,'生成器',2);

Query OK, 1 row affected (0.01 sec)

MariaDB [drop_test]> INSERT INTO python_test(id,name,class_time) value(7,'类的方法',5);

Query OK, 1 row affected (0.00 sec)

#删除数据

MariaDB [drop_test]> drop database drop_test ;

Query OK, 1 row affected (0.01 sec)

/*这个时候要将当前的binlog日志拷贝到其他目录,以免后续操作对binlog日志产生影响*/

cp /var/lib/mysql/mysql-bin.000006 /home

#从binlog中恢复SQL出来

mysqlbinlog -d drop_test mysql-bin.000006 >006bin.sql

将006bin.sql中的 drop database drop_test 命令去掉,然后恢复数据

/*首先恢复备份文件*/

mysql -uroot -p111111 drop_test

/*查看数据库备份文件*/

MariaDB [(none)]> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| drop_test |

| for_bak |

| lhc |

| mysql |

| performance_schema |

| test |

+--------------------+

7 rows in set (0.00 sec)

/*备份的数据已经恢复了*/

MariaDB [drop_test]> show tables;

+---------------------+

| Tables_in_drop_test |

+---------------------+

| python_test |

+---------------------+

1 row in set (0.00 sec)

MariaDB [drop_test]> select * from python_test;

+----+-----------+------------+

| id | name | class_time |

+----+-----------+------------+

| 1 | 字典 | 3 |

| 2 | 列表 | 2 |

| 3 | 函数 | 5 |

| 4 | 装饰器 | 2 |

| 5 | 迭代器 | 2 |

+----+-----------+------------+

5 rows in set (0.00 sec)

/*恢复后查看数据*/

MariaDB [drop_test]> select * from python_test;

+----+--------------+------------+

| id | name | class_time |

+----+--------------+------------+

| 1 | 字典 | 3 |

| 2 | 列表 | 2 |

| 3 | 函数 | 5 |

| 4 | 装饰器 | 2 |

| 5 | 迭代器 | 2 |

| 6 | 生成器 | 2 |

| 7 | 类的方法 | 5 |

+----+--------------+------------+

7 rows in set (0.00 sec)

以上就是利用binlog对mysql恢复误删的数据恢复,数据库表被误删或数据被误删的恢复方法。本方法有局限性,就是要打开数据库的binlog,而且binlog很占用空间,且对性能有影响,实际生产中,众多中小型网站其实并没有开启binlog,导致一旦数据库被误删除、数据表被误删除,又没有备份,很难利用binlog对误删除的数据库和表进行恢复。(如果碰到误删除MySQL数据库数据表的数据,请联系后悔药数据恢复)

后面继续介绍MySQL恢复误删的数据的方法。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180506A0O6SH00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券