如何修復損壞的MySQL資料表

2021-05-10 02:41:41 字數 1242 閱讀 2983

斷電或非正常關機而導致mysql(和php搭配之最佳組合)資料庫出現錯誤是非常常見的問題。有兩種方法,一種方法使用mysql(和php搭配之最佳組合)的check table和repair table 的sql語句,另一種方法是使用mysql(和php搭配之最佳組合)提供的多個myisamchk, isamchk資料檢測恢復工具。前者使用起來比較簡便。推薦使用。

1. check table 和 repair table

登陸mysql(和php搭配之最佳組合) 終端:

mysql(和php搭配之最佳組合) -u***xx -p dbname

> check table tabtest;

如果出現的結果說status是ok,則不用修復,如果有error,可以用:

> repair table tabtest;

進行修復,修復之後可以在用check table命令來進行檢查。在新版本的phpmyadmin裡面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用於myisam型別的資料表,而isamchk適用於isam型別的資料表。這兩條命令的主要引數相同,一般新的系統都使用myisam作為預設的資料表型別,這裡以myisamchk為例子進行說明。當發現某個資料表出現問題時可以使用:

myisamchk tablename.myi

進行檢測,如果需要修復的話,可以使用:

myisamchk -of tablename.myi

另外可以把下面的命令放在你的rc.local裡面啟動mysql(和php搭配之最佳組合)伺服器前:

[ -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(和php搭配之最佳組合)伺服器必須沒有啟動! 

如何修復損壞的MySQL資料表

症狀 mysql出現 incorrect key file for table westocknote users.myi try to repair it 的錯誤資訊。我的這種情況是表索引出現問題,表現為根據id無法查詢到那條資料,但查詢整張表發現資料是沒有缺失的。解決 1.通過check tab...

MySQL資料表損壞的正確修復方案

文章引用 修復以損壞的mysql資料表的實際操作在實際中是我們經常用到的,以下的文章主要是介紹正確修復以損壞的mysql資料表的實際操作步驟,以下就是正文的介紹,希望會給你帶來一些幫助在此方面。於斷電或非正常關機而導致mysql 和php搭配之最佳組合 資料庫出現錯誤是非常常見的問題。有兩種方法,一...

MySQL資料表損壞的正確修復方案

mysql資料表損壞的正確修復方案 修復以損壞的mysql資料表的實際操作在實際中是我們經常用到的,以下的文章主要是介紹正確修復以損壞的mysql資料表的實際操作步驟,以下就是正文的介紹,希望會給你帶來一些幫助在此方面。www.2cto.com 於斷電或非正常關機而導致mysql 和php搭配之最佳...