1. 程式人生 > >windows下mysql開啟binlog日誌及利用binlog日誌恢復資料筆記

windows下mysql開啟binlog日誌及利用binlog日誌恢復資料筆記

1、開啟binlog日誌。

找到mysql安裝目錄,開啟配置檔案my.ini

在[mysqld]下新增:

bin-log=mysql-bin

儲存後重啟mysql。此時在data目錄會生成mysql-bin.000001和mysql-bin.index。

注意:MySQL每次重啟服務會重新生成一個binlog二進位制檔案。

2、實驗:

1、建立一個t1測試資料庫。

create database t1;

2、建立一張測試表。

create table ceshi(id int not null);

3、分別插入三條資料。

4、此時模擬伺服器定期備份任務。(-l是備份期間只讀,-F 重新整理binlog日誌,此時會重新生成一個binlog日誌,名字是mysql-bin.000002)。

mysqldump -uroot -p***** t1 -l -F >ceshi.sql

5、此時向資料庫中新插入三條資料。

6、模擬資料庫破壞。

drop table ceshi;

7、此時資料庫破壞後通過備份我們只能恢復備份那一刻的資料,但是在第五步新插入的三條資料不能通過備份恢復。可以通過binlog日誌來恢復。

通過binlog恢復新插入的三條資料。

a、通過  mysqlbinlog --no-defaults binlog路徑\mysql-bin.000002 |more可以看到我們後面插入的資料。他們的位置是188  270 352

所以我們只需要恢復到352即可。

mysqlbinlog --no-defaults --stop-position="352" 路徑\mysql-bin.000002 |mysql -uroot -p**** t1

至此,利用binlog恢復資料完成。