alter コマンドを使用して、テーブルの 1 つのエンジンを InnoDB から MyIASM に変更しました。phpmyadmin は、現在のエンジンが MyIASM であることを示しています。しかし、対応する DB ディレクトリ内の /var/lib/mysql 内では、そのテーブルの .frm ファイルのみが見つかり、.MYD と .MYI が欠落しています。エンジンが変更されていないことを疑います。何をしなければならないか提案してください。
質問する
790 次
1 に答える
0
テーブルが実際に変更されたかどうかを確認するには、次のようにします。
SHOW CREATE TABLE your_schema.your_table \G
その部分を探しENGINE=...
ます。他にも方法はありますが、これで十分です。このクエリの結果は信頼でき、真実を示しています。
次に、場所を確認しましょう。ファイルを見つけることができるので、.FRM
おそらく正しい場所にいますが、次のようにしましょう。
SELECT @@datadir;
そして、そこを見てください。
最後に、MyISAM テーブルは、 とと呼ばれるデータとインデックスの個別の場所を指定でき、 の結果に表示されます。これらが設定される理由はわかりませんが...一見の価値があります。DATA DIRECTORY
INDEX DIRECTORY
SHOW CREATE TABLE
何が起こったのかを推測するだけですが、これは大きなテーブルですか? たぶん、時間がかかっただけでALTER
、テーブルが再構築されている間も見ていましたか?
于 2012-07-15T07:58:03.173 に答える