1. 程式人生 > >mysql資料庫通過日誌恢復資料

mysql資料庫通過日誌恢復資料

大家應該知道mysql通過備份恢復檔案的方法,其實用日誌其實也可以恢復資料,方法如下

1.找到my.ini檔案 (方法:先到mysql安裝目錄找my.ini檔案如果此安裝目錄沒有找到該檔案,則此檔案一般在C盤下的ProgramData資料夾中,此資料夾為隱藏資料夾需要直接查詢 C:\ProgramData\MySQL\MySQL Server 5.7\)然後開啟my.ini檔案 (在此文件裡找到[mysqld]標籤,並且在下面加上log-bin=binary-log這句話 如[mysqld] log-bin=binary-log (說明:log-bin操作符命令為開啟日誌檔案,因為mysql預設的是關閉日誌,然後binary-log為產生日誌檔案的檔名,此檔案在C:\ProgramData\MySQL\MySQL Server 5.7\Data下面可以看到 binary-log.000001檔案這就是產生的日誌二進位制檔案) 在這裡插入圖片描述

binary-log.000001檔案這就是產生的日誌二進位制檔案

2.日誌檔案已經開啟下面進行實驗, 建立一個新表product,在裡面新增記錄,這時在navicat裡檢視日誌它會顯示建表和新增資料的記錄,時間 在這裡插入圖片描述 在這裡插入圖片描述 在這裡插入圖片描述 注意要記住建表時間和新增記錄後的時間 開啟命令提示符,用cd找到mysql安裝目錄後, 輸入mysqlbinlog “C:\ProgramData\MySQL\MySQL Server 5.7\Data\binary-log.000001” --start-datetime=“2018-11-05 18:00:04.531” --stop-datetime=“2018-11-05 18:01:10.125” |mysql -u root -p 就可以恢復刪除的資料了

注意:當你誤刪一條資料,利用二進位制日誌恢復的時候你需要尋找的是 建立資料的那個節點(時間),而並非你刪除資料的那個節點(時間) 當你回滾資料,回滾到刪資料之前的資料庫狀態(只執行了stop-position 或者stop-datetime),那麼在stop-position之後所有的資料庫操作都將丟失所以你需要 start-position stop-position 回滾單條被刪資料 (start-datetime為開始恢復的時間,stop-datetime為結束恢復的時間)