phpmyadmin誤刪表后使用二進(jìn)制恢復(fù)表的方法

在用phpmyadmin刪除測(cè)試數(shù)據(jù)時(shí),竟然將整個(gè)表刪除了:
等程序運(yùn)行出錯(cuò)時(shí),才出現(xiàn)整個(gè)表都沒(méi)有了,而且之前也沒(méi)有備份好!
服務(wù)器是linux的,我不是很熟悉,也不知道m(xù)ysql裝在哪。
我在phpmyadmin中看到了這個(gè):
腦里出來(lái)了google上說(shuō)的用二進(jìn)制恢復(fù),就點(diǎn)開(kāi)看一下。結(jié)果大喜!OMG,服務(wù)器開(kāi)通了日志!
里面有數(shù)據(jù)庫(kù)的操作日志,而且還是sql格式的?。。?/p>
我之前沒(méi)有接觸過(guò)這個(gè)東西,但這時(shí)它就是我的救命稻草。
我瀏覽了一下,里面有近一個(gè)月的更新記錄,已經(jīng)足夠了。不過(guò)有一個(gè)問(wèn)題,在phpmyadmin里面看,只能顯示其中一小部份內(nèi)容,面對(duì)10幾w的數(shù)據(jù)行,想要一個(gè)個(gè)找出被刪表的數(shù)據(jù),太難了。
這時(shí),我想到了可以從服務(wù)器中下載這些文件,然后得到其中的數(shù)據(jù)。
說(shuō)干就干,我登錄服務(wù)器,搜索這些二進(jìn)制文件:
上圖中紅圈的就是了
然后將這些文件一個(gè)個(gè)導(dǎo)出成可以閱讀的sql:
這樣將這些二進(jìn)制文件一個(gè)個(gè)輸出成了正常的sql文件。
這時(shí),就是要從這些文件中找到被刪表相關(guān)的數(shù)據(jù)了,于是我寫(xiě)了個(gè)java程序幫我做這個(gè)事情:
package com.nerve.sql.reload;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
import java.util.List;
import org.nerve.util.NumberUtil;
/**
* @project: cloudOffice_swing
* @file: ReloadWorker.java
* @package: com.nerve.sql.reload
* @description:
* 將二進(jìn)制日志導(dǎo)出的文件中相應(yīng)表的操作記錄提出出來(lái)
* @author: 集成顯卡 <a href="mailto:1053214511@qq.com">1053214511@qq.com</a>
* @date&time: Jan 23, 2014
* @change log:
*/
public class ReloadWorker {
public void read(List<String> orgF, String targetF, String table) throws Exception{
BufferedWriter bw = new BufferedWriter(new FileWriter(targetF, true));
for(String or:orgF){
BufferedReader br = new BufferedReader(new FileReader(or));
String t = null;
String t2 = null;
table = table.toUpperCase();
while((t=br.readLine())!=null){
t2 = t.toUpperCase();
/*
* 如果是update操作,直接提出
*/
if(t2.startsWith("UPDATE "+table)){
bw.append(t+";\n");
}
/*
* 如果是insert語(yǔ)句,因?yàn)橛幸恍┡f服務(wù)器的數(shù)據(jù)
* 所以要先執(zhí)行delete操作
*/
else if(t2.startsWith("INSERT INTO "+table)){
String ids = t2.substring(t2.lastIndexOf(","));
bw.append("delete from "+table+" where id="+NumberUtil.toDigital(ids)+";\n");
bw.append(t+";\n");
}
/*
* sql語(yǔ)句后面都要加 ; ,因?yàn)樵瓉?lái)沒(méi)有,不加的話,在導(dǎo)入到數(shù)據(jù)庫(kù)時(shí),出錯(cuò)
*/
}
br.close();
}
bw.flush();
bw.close();
}
public static void main(String[] args) throws Exception{
long sd = System.currentTimeMillis();
ReloadWorker w = new ReloadWorker();
List<String> orgs = new ArrayList<String>();
orgs.add("C:/Users/IBM_ADMIN/Desktop/000015.txt");
orgs.add("C:/Users/IBM_ADMIN/Desktop/000016.txt");
orgs.add("C:/Users/IBM_ADMIN/Desktop/000017.txt");
orgs.add("C:/Users/IBM_ADMIN/Desktop/000018.txt");
orgs.add("C:/Users/IBM_ADMIN/Desktop/000019.txt");
String targetS = "C:/Users/IBM_ADMIN/Desktop/000017_sql.txt";
w.read(orgs, targetS, "task");
System.out.println("DONE, on " +(System.currentTimeMillis() - sd)/1000+" s");
}
}
得到了匯總的sql文件后,就導(dǎo)入到數(shù)據(jù)庫(kù)中。
最后,出一個(gè)運(yùn)行圖:
終于松了一口氣。
相關(guān)文章
phpMyAdmin(MySQL數(shù)據(jù)庫(kù)管理工具) v4.9.11 Final 中文官方版
phpmyAdmin是一個(gè)用PHP編寫(xiě)的,可以通過(guò)互聯(lián)網(wǎng)控制和操作MySQL。通過(guò)phpMyAdmin可以完全對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,例如建立、復(fù)制/刪除數(shù)據(jù)等等。 管理 MySQL-server 以及單一數(shù)據(jù)2025-02-01phpminiadmin 中文美化版 輕量級(jí)替代phpMyAdmin的工具
非常輕量級(jí),用于替代笨重的phpMyAdmin來(lái)快速方便地訪問(wèn)MySQL數(shù)據(jù)庫(kù)2015-04-15phpMyAdmin for mac(MySQL數(shù)據(jù)庫(kù)管理工具) 4.5.5.1 蘋(píng)果電腦版
phpMyAdmin for mac版是一款可以運(yùn)行在蘋(píng)果電腦 Mac OS 平臺(tái)上的MySQL的數(shù)據(jù)庫(kù)管理工具,phpMyAdmin for mac 借由此Web接口可以成為一個(gè)簡(jiǎn)易方式輸入繁雜SQL語(yǔ)法的較佳途徑2016-03-06使用phpmyadmin如何修改帝國(guó)CMS的管理員密碼
管理員帳號(hào)存放在phome_enewsuser表里,打開(kāi)以后,把password字段的值設(shè)為:21232f297a57a5a743894a0e4a801fc3,這樣密碼就被設(shè)置為admin888 ,這種方法適合5.0版本以上的帝2014-03-04- phpmyadmin就是一種mysql的管理工具,安裝該工具后,即可以通過(guò)web形式直接管理mysql數(shù)據(jù)2013-11-06
Almp 安卓系統(tǒng)上搭建本地php服務(wù)器環(huán)境(集成phpmyadmin)
安裝包已經(jīng)過(guò)本人修改,加入了支持空密碼的PHPMyAdmin;原作應(yīng)該是aite.me,但訪問(wèn)后自動(dòng)跳轉(zhuǎn)至一個(gè)新浪微博,不管了,在此標(biāo)注一下2013-07-23phpMyAdmin出現(xiàn)顯示空白(錯(cuò)誤)解決方法
有的時(shí)候安裝好PHPmyAdmin后,在IE里訪問(wèn)時(shí)會(huì)出現(xiàn)下面的這種情況Warning: require_once..等等,接下為大家介紹下詳細(xì)的解決方法,感興趣的各位可以參考下哈,希望可以幫助2013-03-25phpMyAdmin mysql數(shù)據(jù)庫(kù)管理工具 v5.0 開(kāi)發(fā)版
phpMyAdmin是一個(gè)以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站主機(jī)上的MySQL的資料庫(kù)管理工具。phpMyAdmin 可以管理整個(gè)MySQL服務(wù)器(需要超級(jí)用戶),也可以管理單個(gè)數(shù)據(jù)庫(kù)。2018-04-20phpMyAdmin 數(shù)據(jù)庫(kù)管理視頻教程 exe格式
phpMyAdmin 數(shù)據(jù)庫(kù)管理視頻教程,由吉林明日科技制作,面向新手的一個(gè)MySQL圖形化管理軟件——phpMyAdmin的使用教程,采用視頻的方式,邊講邊操作,讓初學(xué)者快速上手phpMyA2010-12-31mysql 在線管理程序 phpMyAdmin v3.5.3 rc1 For Windows
phpMyAdmin是一個(gè)以PHP為基礎(chǔ),以Web-Base方式架構(gòu)在網(wǎng)站主機(jī)上的MySQL的資料庫(kù)管理工具.2012-09-26