MySQL 解決資料表損壞 【 Table ‘./DatabaseName/Table’ is marked as crashed and should be repaired】

2014-08-07 MySQL

今天在 wordpress 站台經過多次不正常關機後在啟動 apache 後,站台出現 HTTP 500,顯示的訊息為「建立資料庫連線時發生錯誤」

 

既然跟資料庫有關係就先從資料庫來查起

 

1. 檢查 AP 與 DB 間的連線正常

2. 帳號密碼 Login 正確

3. MySQL 3306 是否 Listen

 

檢查上述 3項都是OK的,連線的環境應是沒有問題!

 

 

再來進到資料庫檢查是否被塞髒資料或是哪裡有問題

shell# mysql -u user -p database

 

 

##檢查 Table 是否有異常

mysql> SHOW TABLES;

 

#檢查 Table 資料

mysql> SELECT * FROM table;

 

在檢查 Table 這項 Mysql 告知此資料表已損壞

Table './DatabaseName/Table' is marked as crashed and should be repaired

 

可以使用以下 sql 進行修復

mysql> REPAIR TABLE TableName

再次 select 即可正常

 

 

 

myisamchk

網路上也有人使用 myisamchk 來進行修復

shell# myisamchk -r tablename

 

若是修復過程中因執行記憶體超過 Default 值就必須使用 –sort_buffer_size 來指派記憶體

shell# myisamchk -r tablename --sort_buffer_size=2G

 

 

 

 

 

※資料表損壞的狀況使用 mysqldump 也會有相同的錯誤訊息

 

 

參考資料

http://emn178.pixnet.net/blog/post/95064604-%E8%A7%A3%E6%B1%BAtable-‘.-dbname-tablename’-is-marked-as-crashed-and-sh

 

給 Mr. 沙先生一點建議

彙整

分類

展開全部 | 收合全部

License

訂閱 Mr. 沙先生 的文章

輸入你的 email 用於訂閱