我正在修復這個表,突然服務器被絞死,當我返回時,所有的表都可以,但這個顯示'正在使用',當我嘗試修復它doesn不會繼續。mysql表被標記爲崩潰,最後(自動?)修復失敗
ERROR 144 - Table './extas_d47727/xzclf_ads' is marked as crashed and last (automatic?) repair failed
我該怎麼做才能修復它?
我正在修復這個表,突然服務器被絞死,當我返回時,所有的表都可以,但這個顯示'正在使用',當我嘗試修復它doesn不會繼續。mysql表被標記爲崩潰,最後(自動?)修復失敗
ERROR 144 - Table './extas_d47727/xzclf_ads' is marked as crashed and last (automatic?) repair failed
我該怎麼做才能修復它?
如果您的MySQL進程正在運行,請停止它。在Debian上:
sudo service mysql stop
轉到您的數據文件夾。在Debian:
cd /var/lib/mysql/$DATABASE_NAME
嘗試運行:
myisamchk -r $TABLE_NAME
如果不工作,你可以嘗試:
myisamchk -r -v -f $TABLE_NAME
您可以再次啓動MySQL服務器。在Debian:
sudo service mysql start
我試過上面的命令我得到這個錯誤 無法創建新的臨時文件:'xzclf_ads.TMD' – GoodtheBesT 2012-01-12 23:26:34
請嘗試從我更新的答案中的其他選項。 – 2012-01-12 23:28:16
謝謝我試過它似乎工作,但停止給這個錯誤? (等待一個人釋放空間......)(在釋放磁盤空間後,服務器將繼續延遲60秒) myisamchk:重試在60秒內傳送消息在600秒內「 – GoodtheBesT 2012-01-12 23:32:14
如果它給你的權限拒絕,而移動到/ var/lib中/ MySQL的然後採用如下方案
$ cd /var/lib/
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
轉到data_dir
並在修復<Your_table>
表後刪除Your_table.TMP
文件。
'data_dir'在哪裏? – CMCDragonkai 2015-05-07 04:54:28
使用此命令搜索它'grep -r datadir/etc/mysql /'。在debian和ubuntu下應該是'/ var/lib/mysql'。 – ThorstenS 2016-02-10 06:30:32
我得到了myisamchk: error: myisam_sort_buffer_size is too small
作爲錯誤。
解決方案
myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
我需要USE_FRM添加到修理聲明,使其工作。
REPAIR TABLE <table_name> USE_FRM;
我已經看到這種情況主要發生在底層文件系統退出空閒inode時。用df -hi檢查。通常有些東西會填滿大量小文件,例如沒有得到清理的php會話文件。 – Zrin 2014-10-21 10:24:08