記一次寶塔面板mysql表誤刪恢復過程

事情起因就不說了,手殘嘛。。。
恢復經過說一下,寶塔面板的mysql自動開啓了binlog功能~ 也就是說我們可以直接通過binlog方式恢復寶塔誤刪的數據。由於我誤刪的數據量小而且都是直接insert數據而不是從其他表摘的數據,因此通過數據庫語句日誌完全可以恢復,大家千萬要注意數據庫備份啊
首先找到寶塔面板的/www/server/data文件夾,看看裏面有沒有mysql-bin.xxxxx之類的文件,如果有那恭喜你可以進行下一步了~
mysql-bin.xxx
這裏是000005和000006,修改日期一個是去年剛建庫的時候的,一個是今天的。當然我們都要看一遍~
怎麼看呢?在控制檯輸入如下命令:

/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000005 > /www/1.txt
/www/server/mysql/bin/mysqlbinlog --base64-output=DECODE-ROWS -v mysql-bin.000006 > /www/2.txt

這樣就能把這兩個文件的備份數據還原出來了~
我們看看解壓出來的內容(兩個文件在/www/下):
原始數據

嗯,一大堆無用數據。。。怎麼辦呢?我們需要進行篩選,這裏我使用的是sublime text 2,由於我刪的是以tp_moban_list開頭的六個表,因此我在sublime text搜索了這個關鍵詞並取了所有包含這個關鍵詞的所有行。正則表達式如下:

^.*tp_moban_list.*$

然後使用sublime text自帶的findAll功能選中包含這個關鍵詞的所有行後copy一下粘貼到新的標籤頁裏:
清理後的表
這個數據看起來舒服多了,上面那些表結構對於我來說沒有意義就刪掉了,我把後面的insert delete update等操作保留下來,裏面還有些註釋順便也清理掉:
二次清理後的圖片
下一步就簡單了,把每行末尾加個分號(用sublime的$替換成;就行了),然後直接塞到phpmyadmin上執行一遍就行了~
兩個文件1.txt和2.txt都執行一遍,注意順序,然後這個表就完整恢復啦~!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章