當前位置:成語大全網 - 新華字典 - 數據庫中的數據誤刪,又沒有進行備份,怎樣恢

數據庫中的數據誤刪,又沒有進行備份,怎樣恢

打開mysql的bin log功能:

對於mysql也是支持增量備份,但要打開mysql的bin log功能。

我們修改mysql的配置文件。linux是/etc/my.cnf,windows是mysql的安裝目錄/my.ini

我們在[mysqld]下面加上log-bin壹行代碼,如下面。

[mysqld]

log-bin=mysql-bin

復制代碼

加完後重起mysql即可。

某客戶更新數據的時候,誤刪了數據庫的內容,因為數據庫做了主從,但是沒有做備份(備份很重要啊!)幸好開啟了bin-log,之後只好把整個日誌的記錄拿回來本地進行恢復。

之後自己也做了壹個簡單的測試,對數據進行恢復,具體如下:

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裏面數據插入的紀錄,把刪除之前的數據進行恢復

mysqlbinlog mysql-bin.000006 --start-position=2471 --stop-position=2876 | mysql -uroot -p123

重新登錄,查看數據,OK,已經成功恢復了

對於數據庫操作,應該註意如下問題:

1、要常備份(全備,增量備份),出了問題可以最快恢復數據;

2、操作數據庫前,要把需要操作的數據庫或者表dump出來;

3、需要把bin-log打開,就算沒有做上面的兩步,也可以通過日誌恢復數據