以下情況可以恢復數據:
香格里拉網站制作公司哪家好,找成都創新互聯公司!從網頁設計、網站建設、微信開發、APP開發、成都響應式網站建設公司等網站項目制作,到程序開發,運營維護。成都創新互聯公司自2013年創立以來到現在10年的時間,我們擁有了豐富的建站經驗和運維經驗,來保證我們的工作的順利進行。專注于網站建設就選成都創新互聯公司。
1 innodb引擎表開啟了事務,執行dml語句,比如delete、update、insert之類,并且沒有提交即commit操作的話,可以執行rollback進行回滾恢復。如果是ddl操作,如drop、create、alter之類的操作時無效的
2 在進行刪除操作之前有備份,比如mysqldump,物理備份數據文件之類的操作,那么可以恢復到刪除前的數據
3 如果你的刪除操作是直接對data下的文件進行刪除,注意,不是粉碎文件操作,那么你可以嘗試用磁盤恢復軟件來找回被誤刪的數據文件;
除以上情況,其他真的是沒法恢復了,不過貌似很多公司號稱能夠恢復,要收費,具體他們怎么恢復我就不曉得了。
一張損壞的表的癥狀通常是查詢意外中斷并且你能看到例如這些錯誤: ◆ “tbl_name.frm”被鎖定不能改變。 ◆ 不能找到文件“tbl_name.MYI”(Errcode :### )。 ◆ 從表處理器的得到錯誤###(此時,錯誤135是一個例外)。 ◆ 意外的文件結束。 ◆ 記錄文件被毀壞。 在這些情況下,你必須修復表。表的修復是一項非常困難的工作,很多情況下令人束手無策。然而,有一些常規的知道思想和過程,可以遵循它們來增加修正表的機會。通常,開始是可以用最快的修復方法,看看能否袖珍故障。如果發現不成功,可以逐步升級到更徹底的但更慢的修復方法。如果仍舊難以修復,就應該從備份中恢復了。在上一章已經詳細介紹了這一部分內容。 簡單安全的修復 為了修復一個表執行下列步驟: ◆ 首先,用--recover,-r選項修正表,并且用--quick,-q選項,來只根據索引文件的內容進行恢復。這樣不接觸數據文件來修復索引文件。(-r意味著“恢復模式”) myisamchk -r -q tbl_nameisamchk -r -q tbl_name ◆ 如果問題仍舊存在,則忽略--quick選項,允許修復程序修改數據文件,因為這可能存在問題。下面的命令將從數據文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件: myisamchk -r tbl_nameisamchk -r tbl_name ◆ 如果前面的步驟失敗,使用。安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢)。 myisamchk --safe-recover tbl_nameisamchk --safe-recover tbl_name困難的修理如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創建一個新的索引文件是必要的。按如下這樣的步驟做: ◆ 定位到包含崩潰表的數據庫目錄中 ◆ 把數據文件移更安全的地方。
本章將繼上篇文章中檢查出表的問題后,告訴你如何修復表。 標簽:修復數據表 表 Mysql數據庫 一張損壞的表的癥狀通常是查詢意外中斷并且你能看到例如這些錯誤: ◆“tbl_name.frm”被鎖定不能改變。 ◆ 不能找到文件“tbl_name.MYI”(Errcode :### )。 ◆ 從表處理器的得到錯誤###(此時,錯誤135是一個例外)。 ◆ 意外的文件結束。 ◆ 記錄文件被毀壞。 在這些情況下,你必須修復表。表的修復是一項非常困難的工作,很多情況下令人束手無策。然而,有一些常規的知道思想和過程,可以遵循它們來增加修正表的機會。通常,開始是可以用最快的修復方法,看看能否袖珍故障。如果發現不成功,可以逐步升級到更徹底的但更慢的修復方法。如果仍舊難以修復,就應該從備份中恢復了。在上一章已經詳細介紹了這一部分內容。 簡單安全的修復 為了修復一個表執行下列步驟: ◆ 首先,用--recover,-r選項修正表,并且用--quick,-q選項,來只根據索引文件的內容進行恢復。這樣不接觸數據文件來修復索引文件。(-r意味著“恢復模式”) myisamchk -r -q tbl_name isamchk -r -q tbl_name ◆ 如果問題仍舊存在,則忽略--quick選項,允許修復程序修改數據文件,因為這可能存在問題。下面的命令將從數據文件中刪除不正確的記錄和已被刪除的記錄并重建索引文件: myisamchk -r tbl_name isamchk -r tbl_name ◆ 如果前面的步驟失敗,使用。安全恢復模式使用一個老的恢復方法,處理常規恢復模式不行的少數情況(但是更慢)。 myisamchk --safe-recover tbl_name isamchk --safe-recover tbl_name 困難的修理 如果在索引文件的第一個16K塊被破壞,或包含不正確的信息,或如果索引文件丟失,你只應該到這個階段 。在這種情況下,創建一個新的索引文件是必要的。按如下這樣的步驟做: ◆ 定位到包含崩潰表的數據庫目錄中 ◆ 把數據文件移更安全的地方。 ◆ 使用表描述文件創建新的(空)數據和索引文件: shell Mysql db_name Mysql DELETE FROM tbl_name; Mysql quit 上述語句將重新創建新的空表,并使用表的的描述文件tbl_name.frm重新生成新的數據和索引文件。 ◆ 將老的數據文件拷貝到新創建的數據文件之中。(不要只是將老文件移回新文件之中;你要保留一個副本以防某些東西出錯。) ◆ 在使用標準的修復方法。現在myisamchk -r -q應該工作了。(這不應該是一個無限循環)。 如果你擁有表的備份文件,那么一切過程就容易的多。從備份文件中可以恢復表的描述文件,然后在檢查表,有可能還要繼續使用標準的修復方法,應該糾可以解決問題了。 非常困難的修復 只有描述文件也破壞了,你才應該到達這個階段。這應該從未發生過,因為在表被創建以后,描述文件就不再改變了。 從一個備份恢復描述文件并且回到階段2。你也可以恢復索引文件并且回到階段1。對于后者,你應該用myisamchk -r啟動。 如果因為某種原因,數據的備份文件丟失或者沒有備份文件,但是你還記得建立表的CREATE TABLE語句,那么太好了,這樣還是可以恢復索引文件: ◆ 定位到包含崩潰表的數據庫目錄中 ◆ 把數據文件移更安全的地方。再把數據庫目錄中的對應的目錄刪去.。 ◆ 調用Mysql并發復CREATE TABLE語句建立該表。 ◆ 退出Mysql,將原始的數據文件和索引文件移回到數據庫的目錄中,替換剛才新建的文件。 ◆ 然后回到階段2,修復表。也可以只移回數據文件,這樣保留新的描述和索引文件,然后回到階段1,繼續用標準的方法修復表。
也許很多人遇到過類似Can’t open file: ‘[Table]mytable.MYI’ 這樣的錯誤信息,卻不知道怎么解決他,下面我們做個介紹, 多數情況下,數據庫被破壞只是指索引文件受到了破壞,真正的數據被破壞掉的情況非常少。大多數形式的數據庫破壞的的修復相當簡...
有兩種方法,一種方法使用使用MySQL提供的多個myisamchk, isamchk數據檢測恢復工具。另一種方法是MySQL的check table和repair table 的sql語句,使用起來比較簡便。 一、myisamchk, isamchk 其中myisamchk適用于MYISAM類型的數據表,而isamchk適用于ISAM類型的數據表。這兩條命令的主要參數相同,一般新的系統都使用MYISAM作為缺省的數據表類型,這里以myisamchk為例子進行說明。當發現某個數據表出現問題時可以使用: myisamchk tablename.MYI 進行檢測,如果需要修復的話,可以使用: myisamchk -of tablename.MYI 關于myisamchk的詳細參數說明,可以參見它的使用幫助。需要注意的時在進行修改時必須確保MySQL(和PHP搭配之最佳組合)服務器沒有訪問這個數據表,保險的情況下是最好在進行檢測時把MySQL(和PHP搭配之最佳組合)服務器Shutdown掉。 另外可以把下面的命令放在你的rc.local里面啟動MySQL(和PHP搭配之最佳組合)服務器前: 1.[ -x /tmp/MySQL(和PHP搭配之最佳組合).sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI 其中的/tmp/MySQL(和PHP搭配之最佳組合).sock是MySQL(和PHP搭配之最佳組合)監聽的Sock文件位置,對于使用RPM安裝的用戶應該是/var/lib/MySQL(和PHP搭配之最佳組合)/MySQL(和PHP搭配之最佳組合).sock,對于使用源碼安裝則是/tmp/MySQL(和PHP搭配之最佳組合).sock可以根據自己的實際情況進行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL(和PHP搭配之最佳組合)數據庫存放的位置。 需要注意的時,如果你打算把這條命令放在你的rc.local里面,必須確認在執行這條指令時MySQL服務器必須沒有啟動! 檢測修復所有數據庫(表) MySQL(和PHP搭配之最佳組合)check -A -o -r -p 二、check table 和 repair table 登陸MySQL終端: MySQL -uxxxxx -p dbname 1. check table tabTest; 如果出現的結果說Status是OK,則不用修復,如果有Error,可以用: 1. repair table tabTest; 進行修復,修復之后可以在用check table命令來進行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。
當前題目:怎么修復mysql表,mysql表數據恢復
鏈接分享:http://m.kartarina.com/article48/hddjhp.html
成都網站建設公司_創新互聯,為您提供商城網站、網站設計公司、品牌網站建設、網站導航、網站建設、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯