私はこのテーブルを修復していましたが、サーバーがハングし、戻ったときにすべてのテーブルは問題ありませんが、このテーブルは「使用中」と表示され、修復しようとすると続行しません。
エラー144-テーブル './extas_d47727/xzclf_ads'はクラッシュとしてマークされ、最後の(自動?)修復に失敗しました
修復するにはどうすればよいですか?
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
次のクエリを実行してみてください。
repair table <table_name>;
私は同じ問題を抱えていたので、問題は解決しました。
/ var/lib/mysqlへの移動中に許可が拒否される場合は、次の解決策を使用します
$ cd /var/lib/
$ Sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
USE_FRMを修復ステートメントに追加して、機能させる必要がありました。
REPAIR TABLE <table_name> USE_FRM;
エラーとしてmyisamchk: error: myisam_sort_buffer_size is too small
を受け取りました。
解決策
myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
data_dir
に移動し、Your_table.TMP
テーブルを修復した後、<Your_table>
ファイルを削除します。
これは100%のソリューションです。自分で試しました。
myisamchk -r -v -f --sort_buffer_size = 128M --key_buffer_size = 128M/var/lib/mysql/databasename/tabloname
私は既存の回答のオプションを試しました。主に正しいとマークされたオプションは、私のシナリオでは機能しませんでした。ただし、機能したのはphpMyAdminの使用でした。データベースを選択してからテーブルを選択し、下部のドロップダウンメニューから[テーブルの修復]を選択します。