簡單情況下:進入原來mysql安裝路徑下的data文件夾下,找到相應的庫和ibdata1,進行copy,就可回復原來的數(shù)據(jù)。

站在用戶的角度思考問題,與客戶深入溝通,找到雨湖網(wǎng)站設計與雨湖網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗,讓設計與互聯(lián)網(wǎng)技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都做網(wǎng)站、網(wǎng)站設計、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣、域名注冊、虛擬空間、企業(yè)郵箱。業(yè)務覆蓋雨湖地區(qū)。
復雜情況下:
從另一臺機上把MySQL數(shù)據(jù)庫的mysql文件夾拷貝到本地機上,目的是恢復本地機對數(shù)據(jù)的訪問和操作。經(jīng)過如下幾種情況的操作。
1.
在本地重裝MySQL(安裝目錄D:\Program
Files\MySQL\MySQL
Server
5.0),直接把mysql文件夾拷貝至D:\Program
Files\MySQL\MySQL
Server
5.0\。結果,失敗:數(shù)據(jù)庫連接錯誤。
2.
卸載后重裝MySQL,將D:\Program
Files\MySQL\MySQL
Server
5.0\下的數(shù)據(jù)備份,只把mysql\data文件夾全部內容拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data下。結果,失敗:數(shù)據(jù)庫連接錯誤。將備份的數(shù)據(jù)還完覆蓋。結果,失敗,還是連接不上數(shù)據(jù)庫。
3.
卸載后重裝MySQL,將mysql\data文件夾里的cf1,last文件夾(這兩個是原來MySQL里的數(shù)據(jù)庫)拷貝進D:\Program
Files\MySQL\MySQL
Server
5.0\data。連接成功,在Navicat
for
MySQL里看到數(shù)據(jù)庫cf1和last,但是不能訪問,因為數(shù)據(jù)全為零。明白了原來data里以數(shù)據(jù)庫命名的文件存儲的是數(shù)據(jù)庫的表結構,不是元數(shù)據(jù)。下一步,把data文件夾里的ibdata1文件(3.4G大,明顯存儲了元數(shù)據(jù))拷貝到D:\Program
Files\MySQL\MySQL
Server
5.0\data里,代替原來的ibdata1文件。重啟電腦,打開Navicat
for
MySQL,連接成功,數(shù)據(jù)可以訪問操作。
至此,操作終于成功。其實當初在那臺機上把數(shù)據(jù)導出來,而不是現(xiàn)在直接把文件夾mysql復制過來會更容易恢復。但那臺機已經(jīng)重裝了系統(tǒng),也就是說MySQL失效了。
有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個myisamchk, isamchk數(shù)據(jù)檢測恢復工具。
前者使用起來比較簡便。推薦使用。
1、check table 和 repair table 登陸mysql 終端: mysql -uxxxxx -p dbname check table tabTest;
如果出現(xiàn)的結果說Status是OK,則不用修復,如果有Error,可以用: repair table tabTest; 進行修復,修復之后可以在用check table命令來進行檢查。
在新版本的phpMyAdmin里面也可以使用check/repair的功能。
2. myisamchk, isamchk 其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。
這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進行說明。
當發(fā)現(xiàn)某個數(shù)據(jù)表出現(xiàn)問題時可以使用: myisamchk tablename.MYI 進行檢測,如果需要修復的話,可以使用: myisamchk -of tablename.MYI 關于myisamchk的詳細參數(shù)說明,可以參見它的使用幫助。
需要注意的時在進行修改時必須確保MySQL服務器沒有訪問這個數(shù)據(jù)表,保險的情況下是最好在進行檢測時把MySQL服務器Shutdown掉。
2、另外可以把下面的命令放在你的rc.local里面啟動MySQL服務器前: [ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI 。
其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對于使用RPM安裝的用戶應該是/var/lib/mysql/mysql.sock,對于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫存放的位置。
需要注意的是,如果你打算把這條命令放在你的rc.local里面,必須確認在執(zhí)行這條指令時MySQL服務器必須沒有啟動!
最后檢測修復所有數(shù)據(jù)庫(表)。
如果你要恢復的數(shù)據(jù)庫是包含授權表的mysql數(shù)據(jù)庫,您將需要使用--skip贈款-tables選項來運行服務器恢復整個數(shù)據(jù)庫
- 首先,。否則,服務器會抱怨不能找到授權表。恢復表后,執(zhí)行mysqladmin沖水privileges告訴服務器裝載授權表,并用它們來啟動。數(shù)據(jù)庫目錄到其他地方的原始內容
復制。例如,您可以使用它們在以后的事后分析檢查表(驗尸)的崩潰。
酒店與最新的數(shù)據(jù)庫備份文件重新加載。如果您打算使用mysqldump的所加載的文件,則需要輸入它們作為mysql的。如果您打算使用從數(shù)據(jù)庫文件直接拷貝(例如,使用tar或CP),它會復制他們直接回數(shù)據(jù)庫目錄中。然而,在這種情況下,你應該在關閉之前,該服務器復制這些文件,然后重新啟動它。在備份過程中
重做日志,然后查詢更新數(shù)據(jù)庫表中。對于所有可用的更新日志,你可以使用它作為mysql的輸入。指定--one-database選項,因此MySQL只是要還原的數(shù)據(jù)庫執(zhí)行查詢。如果你意識到有必要使用所有的更新日志文件,可以使用包含以下命令日志的目錄:
%LS-TRL更新(0-9)* | xargs的貓| mysql--。一個數(shù)據(jù)庫DB_NAME
ls命令生成一個單獨的日志文件更新列表,更新日志文件根據(jù)服務器(你知道,如果你其中的任何文件,排序順序生成的順序進行排序會發(fā)生變化,這將導致在更新日志中以錯誤的順序使用)。有限公司您可能需要使用一些更新日志。例如,如果日志,因為命名update.392備份,pdate.393等產(chǎn)生的,可以在命令重新運行它們:
%的mysql - 一個數(shù)據(jù)庫DB_NAME 錄入。 392
%的mysql - 一個數(shù)據(jù)庫DB_NAME updata.393 ...
如果您正在運行的恢復,并打算使用更新日志恢復由于失誤降數(shù)據(jù)的基礎上,DROPTABLE或DELETE語句和丟失的信息時,一定要在開始更新日志刪除這些語句。
恢復單個表
恢復單個表是非常困難的。如果是的mysqldump備份文件生成的,它只是不包含數(shù)據(jù),您需要一個表,你需要提取的相關線路,并利用它們作為mysql的輸入,這部分比較容易。困難的是,提取在該表的更新日志中使用的片段。你會發(fā)現(xiàn):mysql_find_rows工具在這方面有所幫助,它可以提取多行從更新日志查詢。另一種可能性是使用另一臺服務器
恢復整個數(shù)據(jù)庫,然后將該文件復制到表的原始數(shù)據(jù)庫。這其實很容易!當文件被復制回數(shù)據(jù)庫目錄,確保原始數(shù)據(jù)庫服務器關閉。
1、先在運行中輸入services.msc,找到MysQL的服務,將其停止;
2、然后備份新安裝的MY.INI和DATA這兩個目錄,直接將其原來mysql/data下的文件拷到新安裝的mysql/data目錄下即可;
3、啟動MysQL服務。該方法只在新安裝的數(shù)據(jù)庫與舊數(shù)據(jù)庫版本相同的情況下實驗成果。重新打開navicat,發(fā)現(xiàn)原來的數(shù)據(jù)庫都可以使用了。
mysql數(shù)據(jù)庫不小心還原了需要按照以下步驟恢復。
1、先確認mysql有沒有啟用bin日志 ,就是看下mysql.ini(my.cnf)里的log-bin=mysql-bin, 可以 自定義一個目錄和前綴名,比如/data/log/mylog這樣。
2、然后在數(shù)據(jù)庫文件存放的data目錄就能看到mysql-bin.00000x這樣的文件,這就是二進制日志了,可以導出成txt格式的,里面其實就是對數(shù)據(jù)庫的各種操作sql語句。
3、導出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下的導出,linux也是類似的。
database=數(shù)據(jù)庫名
從最早的日志還始還原
linux下可以很方便的 mysql-bin.000*
可以加參數(shù)開始時間和結束時間,就是你執(zhí)行那條sql語句的時間
start-datetime="2014-12-04
11:25:56"
--stop-datetime="2014-12-04
13:23:50"
4、恢復數(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
------------------------------------------------
看看有沒有備份,用備份恢復
看看有沒有開啟bin_log,如果有開啟,使用bin_log按時間點恢復
看看有沒有開啟query_log,如果有開啟,可以嘗試用查詢日志恢復。
網(wǎng)站標題:mysql怎么恢復sql mysql備份恢復命令
轉載注明:http://chinadenli.net/article18/hpjddp.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供外貿(mào)建站、網(wǎng)站建設、網(wǎng)站維護、網(wǎng)站策劃、自適應網(wǎng)站、服務器托管
聲明:本網(wǎng)站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)