windows下mysql開啟binlog日誌及利用binlog日誌恢復資料筆記
阿新 • • 發佈:2019-01-03
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恢復資料完成。