web-dev-qa-db-ja.com

MySQLテーブルがクラッシュしたとマークされ、最後の(自動?)修復に失敗しました

私はこのテーブルを修復していましたが、サーバーがハングし、戻ったときにすべてのテーブルは問題ありませんが、このテーブルは「使用中」と表示され、修復しようとすると続行しません。

エラー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
232

次のクエリを実行してみてください。

repair table <table_name>;

私は同じ問題を抱えていたので、問題は解決しました。

99
cREcker

/ var/lib/mysqlへの移動中に許可が拒否される場合は、次の解決策を使用します

$ cd /var/lib/
$ Sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>
12
crazycrv

USE_FRMを修復ステートメントに追加して、機能させる必要がありました。

REPAIR TABLE <table_name> USE_FRM;
4
Mark

エラーとしてmyisamchk: error: myisam_sort_buffer_size is too smallを受け取りました。

解決策

myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G
3
ThorstenS

data_dirに移動し、Your_table.TMPテーブルを修復した後、<Your_table>ファイルを削除します。

2
user1913891

これは100%のソリューションです。自分で試しました。

myisamchk -r -v -f --sort_buffer_size = 128M --key_buffer_size = 128M/var/lib/mysql/databasename/tabloname

1
cryptox1

私は既存の回答のオプションを試しました。主に正しいとマークされたオプションは、私のシナリオでは機能しませんでした。ただし、機能したのはphpMyAdminの使用でした。データベースを選択してからテーブルを選択し、下部のドロップダウンメニューから[テーブルの修復]を選択します。

  • サーバータイプ:MySQL
  • サーバーバージョン:5.7.23-MySQL Community Server(GPL)
  • phpMyAdmin:バージョン情報:4.7.7
0
user3417257