这世界上有后悔药
-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恢复误删的数据的方法。
领取专属 10元无门槛券
私享最新 技术干货