最近一直在搞DEDE環境問題,配置數據庫的時候老是出現這樣那樣的問題,最後索性直接把本機上 的MySQL文件直接COPY到服務器的數據庫中,然後浏覽,嘿,其他大部分的問題都已經解決了,但是還是有一個問題沒有解決。
老是提示
MySQL 返回:
#1034 - Incorrect key file for table 'dede_arctype'; try to repair it
很明顯,提示是說數據表被破壞了,需要修復才能好,簡單的用兩條修復語句就OK了,下面就是具體的操作方法:
在DEDE的後台SQL操作中直接輸入
repair table tablename;
REPAIR TABLE mytable USE_FRM;
================================================================================
如果直接在MySQL中操作用一下方法
用”repair table”方式修復
語法:repair table 表名 [選項] QUICK 用在數據表還沒被修改的情況下,速度最快
EXTENDED 試圖去恢復每個數據行,會產生一些垃圾數據行,萬般無奈的情況下用
USE_FRM 用在.MYI文件丟失或者頭部受到破壞的情況下。利用.frm的定義來重建索引
多數情況下,簡單得用”repair table tablename”不加選項就可以搞定問題。但是當.MYI文件丟失或者頭部受到破壞時,這樣的方式不管用,例如:
MySQL> REPAIR TABLE mytable; | Table | Op | Msg_type | Msg_text | | sports_results.mytable | repair | error | Can’t find file: ‘mytable.MYI’ (errno: 2) |
+————————-+——–+———-+———————————————+修復失敗的原因時索引文件丟失或者其頭部遭到了破壞,為了利用相關定義文件來修復,需要用USE_FRM選項。例如:
MySQL> REPAIR TABLE mytable USE_FRM; | Table | Op | Msg_type | Msg_text | | sports_results.mytable | repair | warning | Number of rows changed from 0 to 2 |
| sports_results.mytable | repair | status | OK |
+————————-+——–+———-+————————————+我們可以看到Msg_test表項的輸出信息”ok”,表名已經成功修復受損表。