2

そのため、ディスク容量が不足し、ほとんどの InnoDB テーブルがもちろん破損した MySQL サーバーを扱っています。破損したテーブルを削除して再作成しようとしていますが、MySQL では修復を含め、何もできません。ご覧のとおり、これで終わりではありません。この 1 つのテーブルだけがこれらのエラーの原因になっているように見えることに注意してください。

mysql> drop table myschema.mytable;
ERROR 2013 (HY000): Lost connection to MySQL server during query

mysql> repair table myschema.mytable;
#results in the following
| myschema.mytable | repair | Error    | Out of memory; restart server and try again (needed 2 bytes)               |
| myschema.mytable | repair | Error    | Incorrect information in file: './myschema/mytable.frm' |
| myschema.mytable | repair | error    | Corrupt 

mysql> describe myschema.mytable; 
ERROR 1037 (HY001): Out of memory; restart server and try again (needed 2 bytes) 

サーバーを停止し、テーブルの .frm ファイルと ibd ファイルを邪魔にならないように移動してから再起動すると、サーバーが既に存在すると言うため (INFORMATION_SCHEMA には表示されませんが)、再作成できません。この状態では、サーバーがそこにないと言っているため、ドロップすることもできません。

私は答えを高くも低くも見てきましたが、現時点では、私は DBA ではないので迷っています。このテーブルを修正する方法がわかりません。また、削除する方法もわかりません。

助言がありますか?

4

1 に答える 1

2

この時点での私の答えがあなたにとって役立つかどうかはわかりませんが、他の人には役立つと思います.

これはあまり珍しい問題ではありません。この破損の理由はさまざまですが、修正は簡単です。

You have to dump your table and recreate it again.

innodb_force_recovery=1これは、my.cnf ファイルにパラメーターを設定してから mysql を再起動することで実現できます。

このパラメーターの詳細については、このリンクを参照してください。http://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

問題が解決したら、パラメーターを削除できます。

乾杯!

于 2016-06-14T13:19:15.083 に答える