web-dev-qa-db-ja.com

MySQLは言った:#1194-テーブル 'tablename'はクラッシュしたとマークされており、修復する必要がある

テーブルがクラッシュする場合は、システムに問題があることを意味します。

MySQL said: 

#1194 - Table 'tablename' is marked as crashed and should be repaired 

このため、私のウェブサイトは現在ダウンしています。

私はphpmyadminからテーブルを修復する方法を知っていますが、それを修復する安全な方法はありますか?

この問題の重要な要素は何ですか?

質問。一般に、なぜテーブルがクラッシュするのですか?

答え。これらは理由かもしれません-

  1. サーバーのディスク領域がいっぱいでした。 (ライブサーバーのディスク容量を確認してください)

  2. MySQLサーバーの誤ったシャットダウン/データベースの使用中にテーブルを不適切に閉じる。

  3. より多くのサーバー負荷。

14

まず第一に-クラッシュしたテーブルには多くの理由があります。

  • ハードディスク障害
  • サーバーの突然の再起動
  • サーバークラッシュ
  • ファームウェアの問題(RAIDコントローラまたはBIOS)
  • ケーブルの欠陥
  • 等.

Phpmyadminによる修復は、基本的にはmysqlrepairコマンドラインと同じです。コマンドラインですべてを修復することをお勧めします:

mysqlrepair -A --auto-repair
mysqlrepair -A -o

またはテストを開始します。

mysqlrepair -A -c
20
Andreas Rehm

コマンドラインツールが必要なく、クラッシュの原因がMYSQL自体である可能性が高い場合は、これをMYSQLから実行してテーブルを修復します。

REPAIR TABLE db_name.table_name;
12

はい、phpmyadminからテーブルを修復できます。データに影響はありません。また、「myisamchk」コマンドを使用してシェルからテーブルを修復することもできます。

4

ソリューション:

データベースに移動し、問題のあるテーブルを選択し、「テーブルの修復」オプションを選択テーブルのクラッシュエントリを修正し、問題を解決します

enter image description here

1
Hassan Saeed

使用する:

mysqlcheck -u root -p --auto-repair --check --all-databases
(Password prompted)

ユーザーrootのMySQLパスワードを入力すると、すべてが完了します。

1
Abhishek Sharma

私はこれをコマンドラインから使用します:

mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
1
bgarlock

サーバーにsshアクセスできる場合は、ログインして実行できます。

df -h

そしてあなたはこのようなものを見ることができました:

Filesystem            Size  Used Avail Use% Mounted on
/dev/cciss/xxxx      19G  825M   18G   5% /
/dev/cciss/xxxx     9.4G  4.8G  4.2G  54% /usr
/dev/cciss/xxxx      15G  1.8G   12G  13% /var
/dev/cciss/xxxx      19G   18G    0G   0% /opt
/dev/cciss/xxxx     4.7G  243M  4.3G   6% /tmp
/dev/cciss/xxxx     9.4G  1.5G  7.5G  17% /home

それは/optにインストールされたLAMPです。空きディスク容量を確保した後、クエリを実行できます(上記のとおり)。

Repair table db.mytablecrashed

そして、あなたは最後の行に入ります:

Table               OP        Msg_type  Msg_text
...
db.mytablecrashed   repair    status    OK
0
Rodney Salcedo