1.如果有備份,恢復(fù)備份數(shù)據(jù)就可以。
讓客戶滿意是我們工作的目標(biāo),不斷超越客戶的期望值來自于我們對這個行業(yè)的熱愛。我們立志把好的技術(shù)通過有效、簡單的方式提供給客戶,將通過不懈努力成為客戶在信息化領(lǐng)域值得信任、有價值的長期合作伙伴,公司提供的服務(wù)項目有:空間域名、虛擬主機(jī)、營銷軟件、網(wǎng)站建設(shè)、沙市網(wǎng)站維護(hù)、網(wǎng)站推廣。
2.如果在企業(yè)管理器里刪除了數(shù)據(jù)庫,如果有備份,恢復(fù)備份數(shù)據(jù)就可以。
3. 如果你是在程序里卸載sql程序,數(shù)據(jù)就在sql安裝目錄里,附加數(shù)據(jù)庫就可以了。
4.如果備份數(shù)據(jù)都沒有,可以找個硬盤數(shù)據(jù)恢復(fù)公司。
mysql數(shù)據(jù)庫不小心還原了需要按照以下步驟恢復(fù)。
1、先確認(rèn)mysql有沒有啟用bin日志 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然后在數(shù)據(jù)庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進(jìn)制日志了,可以導(dǎo)出成txt格式的,里面其實(shí)就是對數(shù)據(jù)庫的各種操作sql語句。
3、導(dǎo)出txt文件:
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=testdatabase
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000312
c:\\test1.txt
這是windows下的導(dǎo)出,linux也是類似的。
database=數(shù)據(jù)庫名
從最早的日志還始還原
linux下可以很方便的 mysql-bin.000*
可以加參數(shù)開始時間和結(jié)束時間,就是你執(zhí)行那條sql語句的時間
start-datetime="2014-12-04
11:25:56"
--stop-datetime="2014-12-04
13:23:50"
4、恢復(fù)數(shù)據(jù):
e:\wamp\bin\mysql\mysql5.6.12\binmysqlbinlog
--database=yundongchao
e:\wamp\bin\mysql\mysql5.6.12\data\mysql-bin.000179
|
mysql
-u
root
-p
------------------------------------------------
1 找個別的機(jī)器安裝個同版本的mysql或從已安裝同版本的其他機(jī)器上(非同版本的也可以試下):
拷貝 mysql/data/mysql 目錄到你的mysql/data/ 下吧
2 試著啟動mysql服務(wù),如果能啟動了,理論上應(yīng)該丟失的只有用戶、授權(quán)等一些系統(tǒng)信息,不影響你的使用的數(shù)據(jù);
如果不能啟動,看錯誤日志,爭取啟動了。
3 趕緊把數(shù)據(jù)備份一份出來,重新把所有庫(只是你后來創(chuàng)建的業(yè)務(wù)相關(guān)的庫,不包括mysql庫)都刪了,重新導(dǎo)入一遍。理論上不這樣也可以,但只是非生產(chǎn)重要的環(huán)境下。
4 重新做用戶授權(quán)。
如果你要恢復(fù)的數(shù)據(jù)庫是包含授權(quán)表的mysql數(shù)據(jù)庫,您將需要使用--skip贈款-tables選項來運(yùn)行服務(wù)器恢復(fù)整個數(shù)據(jù)庫
- 首先,。否則,服務(wù)器會抱怨不能找到授權(quán)表?;謴?fù)表后,執(zhí)行mysqladmin沖水privileges告訴服務(wù)器裝載授權(quán)表,并用它們來啟動。數(shù)據(jù)庫目錄到其他地方的原始內(nèi)容
復(fù)制。例如,您可以使用它們在以后的事后分析檢查表(驗(yàn)尸)的崩潰。
酒店與最新的數(shù)據(jù)庫備份文件重新加載。如果您打算使用mysqldump的所加載的文件,則需要輸入它們作為mysql的。如果您打算使用從數(shù)據(jù)庫文件直接拷貝(例如,使用tar或CP),它會復(fù)制他們直接回數(shù)據(jù)庫目錄中。然而,在這種情況下,你應(yīng)該在關(guān)閉之前,該服務(wù)器復(fù)制這些文件,然后重新啟動它。在備份過程中
重做日志,然后查詢更新數(shù)據(jù)庫表中。對于所有可用的更新日志,你可以使用它作為mysql的輸入。指定--one-database選項,因此MySQL只是要還原的數(shù)據(jù)庫執(zhí)行查詢。如果你意識到有必要使用所有的更新日志文件,可以使用包含以下命令日志的目錄:
%LS-TRL更新(0-9)* | xargs的貓| mysql--。一個數(shù)據(jù)庫DB_NAME
ls命令生成一個單獨(dú)的日志文件更新列表,更新日志文件根據(jù)服務(wù)器(你知道,如果你其中的任何文件,排序順序生成的順序進(jìn)行排序會發(fā)生變化,這將導(dǎo)致在更新日志中以錯誤的順序使用)。有限公司您可能需要使用一些更新日志。例如,如果日志,因?yàn)槊鹵pdate.392備份,pdate.393等產(chǎn)生的,可以在命令重新運(yùn)行它們:
%的mysql - 一個數(shù)據(jù)庫DB_NAME 錄入。 392
%的mysql - 一個數(shù)據(jù)庫DB_NAME updata.393 ...
如果您正在運(yùn)行的恢復(fù),并打算使用更新日志恢復(fù)由于失誤降數(shù)據(jù)的基礎(chǔ)上,DROPTABLE或DELETE語句和丟失的信息時,一定要在開始更新日志刪除這些語句。
恢復(fù)單個表
恢復(fù)單個表是非常困難的。如果是的mysqldump備份文件生成的,它只是不包含數(shù)據(jù),您需要一個表,你需要提取的相關(guān)線路,并利用它們作為mysql的輸入,這部分比較容易。困難的是,提取在該表的更新日志中使用的片段。你會發(fā)現(xiàn):mysql_find_rows工具在這方面有所幫助,它可以提取多行從更新日志查詢。另一種可能性是使用另一臺服務(wù)器
恢復(fù)整個數(shù)據(jù)庫,然后將該文件復(fù)制到表的原始數(shù)據(jù)庫。這其實(shí)很容易!當(dāng)文件被復(fù)制回數(shù)據(jù)庫目錄,確保原始數(shù)據(jù)庫服務(wù)器關(guān)閉。
1.第一步,查詢語句:select*fromtable_name;或select*fromtable_namewhere條件,如下圖。
2.第二步,增加語句或插入數(shù)據(jù)insertintotable_name(clus...)values(values...)實(shí)例如圖
3.修改數(shù)據(jù):updatetablenamesetxx=xx,xxx=xxwherexxx=xxxandxxx=xxx,如下圖。
4.第四步,刪除語句deletetable_namewhere條件實(shí)例如圖。
1、首先構(gòu)建測試環(huán)境數(shù)據(jù)create table t1(a varchar(10),b varchar(10));insert into t1 values('1','1');insert into t1 values('2','2');commit;。
2、模擬誤修改,將t1表中的b字段更新為錯誤數(shù)據(jù) "123456"update t1 set b='123456' where a='1';commit;select * from t1;。
3、將恢復(fù)工具上傳到服務(wù)器并進(jìn)行解壓。unzip binlog2sql-master.zip。
4、得到誤修改時的binlog文件(show binary logs;),實(shí)驗(yàn)環(huán)境是mysql-bin.000011。
5、通過?binlog2sql.py 腳本的到所有 對表 t1 的修改操作。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011'。
6、得到了誤刪除的sql的準(zhǔn)確位置在1382-1615之間,使用 _**-B**_ 選項生成回滾sql。python binlog2sql.py -hlocalhost -P23307 -ubinlog2sql -p'binlog2sql' -dtest -tt1 --start-file='mysql-bin.000011' --start-position=1382 --stop-position=1615 -B。
7、執(zhí)行得到的回滾語句進(jìn)行誤操作恢復(fù)。就完成了。