找到mysql的安裝目錄的bin/myisamchk工具,在命令列中輸入:
myisamchk -c -r ../data/tablename/posts.myi
然後myisamchk 工具會幫助你恢復資料表的索引。好象也不用重新啟動mysql,問題就解決了。
當你試圖修復乙個被破壞的表的問題時,有三種修復型別。如果你得到乙個錯誤資訊指出乙個臨時檔案不能建立,刪除資訊所指出的檔案並再試一次--這通常是上一次修復操作遺留下來的。
這三種修復方法如下所示:
% myisamchk --recover --quick /path/to/tblname
% myisamchk --recover /path/to/tblname
% myisamchk --safe-recover /path/to/tblname
第一種是最快的,用來修復最普通的問題;而最後一種是最慢的,用來修復一些其它方法所不能修復的問題。
檢查和修復mysql資料檔案
如果上面的方法無法修復乙個被損壞的表,在你放棄之前,你還可以試試下面這兩個技巧:
如果你懷疑表的索引檔案(*.myi)發生了不可修復的錯誤,甚至是丟失了這個檔案,你可以使用資料檔案(*.myd)和資料格式檔案(*.frm)重新生
成它。首先製作乙個資料檔案(tblname.myd)的拷貝。重啟你的mysql服務並連線到這個服務上,使用下面的命令刪除表的內容:
mysql> delete from tblname;
在刪除表的內容的同時,會建立乙個新的索引檔案。退出登入並重新關閉服務,然後用你剛才儲存的資料檔案(tblname.myd)覆蓋新的(空)資料檔案。
最後,使用myisamchk執行標準的修復(上面的第二種方法),根據表的資料的內容和表的格式檔案重新生成索引資料。
如果你的表的
格式檔案(tblname.frm)丟失了或者是發生了不可修復的錯誤,但是你清楚如何使用相應的create
table語句來重新生成這張表,你可以重新生成乙個新的.frm檔案並和你的資料檔案和索引檔案(如果索引檔案有問題,使用上面的方法重建乙個新的)一
起使用。首先製作乙個資料和索引檔案的拷貝,然後刪除原來的檔案(刪除資料目錄下有關這個表的所有記錄)。
啟動mysql服務並使用當初的create table檔案建立乙個新的表。新的.frm檔案應該可以正常工作了,但是最好你還是執行一下標準的修復(上面的第二種方法)。
例如 檢查、優化、並修復所有的資料庫用:
# mysqlcheck -a -o -r -p
修復指定的資料庫用
# mysqlcheck -a -o -r database_name -p
即可
修復MYSQL資料庫
whereis mysql cd usr local mysql mysqlcheck u root p auto repair check optimize all databases 修復後看看大小 四種在mysql中修改root密碼的方法,可能對大家有所幫助 方法1 用set password...
修復mysql語句 mysql修復資料庫
1.如果資料庫龐大讀寫非常慢的時候,精簡優化sql語句效果不是很明顯的時候,一定試試這個語句 mysqlcheck a o r p 並輸入mysql的root密碼,逐個修復所有資料庫 2.優化 optimize table name 個人感覺效果不是太好 3.只是對某個表進行修復可以用 myisam...
快速修復MySQL資料庫
mysql自帶的可以檢查和修復myisam表,並且它還可以優化和分析表。mysqlcheck的功能類似myisamchk,但其工作不同。主要差別是當mysqld伺服器在執行時必須使用mysqlcheck,而myisamchk應用於服務 器沒有執行時。使用mysqlcheck的好處是不需要停止伺服器來...