1. 程式人生 > >Windows下,MySql使用binlog恢復表和資料初級教程

Windows下,MySql使用binlog恢復表和資料初級教程

今天給大家分享一個Windows下,MySql使用binlog恢復表和資料的初級教程!

大家也知道,小編寫教程是很詳細,保證小白都可以看得懂!但是過程很痛苦啊,一步一步的寫。所以呢,喜歡小編的就請點個贊吧,讓我有走下去的動力!

教程開始,準備工作,要先開啟binlog日誌的功能對吧,怎麼開啟?看我上一篇的教程!

算了 還是簡單說下吧。

進到這個目錄,"C:\ProgramData\MySQL\MySQL Server 5.7\my.ini"

在my.ini的[mysqld]下面新增一行 log-bin = mysql-bin ,然後重啟mysql服務,就可以了。如下圖:

[mysqld]

# log-bin

log-bin = mysql-bin


一、新建一張測試表test

CREATE TABLE if not exists test (

id int UNSIGNED NOT NULL AUTO_INCREMENT ,

username VARCHAR(3) NOT NULL DEFAULT "張三" ,

PRIMARY KEY (`id`)

)

二、然後插入2條資料 ,查詢看看

insert into test values(1,'張三');

insert into test values(2,'李四');

三、然後我們把資料備份到d盤,

  1. 開啟windows的cmd視窗 進入到mysql的bin目錄: cd C:\Program Files\MySQL\MySQL Server 5.7\bin

  2. 然後執行只備份test這張表的命令:mysqldump --opt --host=127.0.0.1 --protocol=tcp --port=3306 --default-character-set=utf8 --single-transaction=TRUE -u root --password=root edu test > "D:\test.sql"

四、這時模擬誤操作(插入2條資料,然後刪除資料庫)

先插入

insert into test values(3,'王五');

insert into test values(4,'趙六');

再刪除

truncate t;

drop table t;

五、這時,我們先用剛剛備份的test.sql檔案來恢復下資料(肯定只能恢復前兩條資料,因為我們是在後兩條資料插入之前備份的)

1.用mysql -uroot -proot先登入mysql

2.然後執行匯入test.sql的命令:

source d://test.sql

3.然後在查詢下test表看下資料恢復過來沒有

正常 資料恢復了,然後我們最後插入的那個王五,趙六沒恢復成功。怎麼辦?只能用binlog咯。往下看,關鍵來了....

六、剩餘的三條資料沒有恢復過來,我們使用mysql的binlog日誌來恢復

1.使用sql語句:show binlog events in 'mysql-bin.000001'; -- 檢視binlog內容記錄下開始位置和結束位置

2.然後進入到mysql的:C:\ProgramData\MySQL\MySQL Server 5.7\Data

cd C:\ProgramData\MySQL\MySQL Server 5.7\Data

3.用binlog命令備份到d盤 

mysqlbinlog --start-position=1142 --stop-position=1560 mysql-bin.000001 > d:\\test1.sql

4.然後使用開始位置和結束位置來恢復資料,執行以下命令

先登入到mysql 命令:mysql -uroot -proot

6.然後執行:source d://test1.sql (這裡是用我們binlog備份的test1.sql去恢復資料哦)

最後在查詢下test表,發現數據已經恢復了