0

alter コマンドを使用して、テーブルの 1 つのエンジンを InnoDB から MyIASM に変更しました。phpmyadmin は、現在のエンジンが MyIASM であることを示しています。しかし、対応する DB ディレクトリ内の /var/lib/mysql 内では、そのテーブルの .frm ファイルのみが見つかり、.MYD と .MYI が欠落しています。エンジンが変更されていないことを疑います。何をしなければならないか提案してください。

4

1 に答える 1

0

テーブルが実際に変更されたかどうかを確認するには、次のようにします。

SHOW CREATE TABLE your_schema.your_table \G

その部分を探しENGINE=...ます。他にも方法はありますが、これで十分です。このクエリの結果は信頼でき、真実を示しています。

次に、場所を確認しましょう。ファイルを見つけることができるので、.FRMおそらく正しい場所にいますが、次のようにしましょう。

SELECT @@datadir;

そして、そこを見てください。

最後に、MyISAM テーブルは、 とと呼ばれるデータとインデックスの個別の場所を指定でき、 の結果に表示されます。これらが設定される理由はわかりませんが...一見の価値があります。DATA DIRECTORYINDEX DIRECTORYSHOW CREATE TABLE

何が起こったのかを推測するだけですが、これは大きなテーブルですか? たぶん、時間がかかっただけでALTER、テーブルが再構築されている間も見ていましたか?

于 2012-07-15T07:58:03.173 に答える