このクエリを実行しようとしています:
alter table about_member discard tablespace;
しかし、そうすると、エラーログに次のように出力されます。
InnoDB: エラー: テーブル `diskise`.`about_member`
InnoDB: 破棄できないシステム テーブルスペース 0 にあります
このテーブルスペースを破棄して、所有しているバックアップをインポートできるようにするにはどうすればよいですか?
このクエリを実行しようとしています:
alter table about_member discard tablespace;
しかし、そうすると、エラーログに次のように出力されます。
InnoDB: エラー: テーブル `diskise`.`about_member`
InnoDB: 破棄できないシステム テーブルスペース 0 にあります
このテーブルスペースを破棄して、所有しているバックアップをインポートできるようにするにはどうすればよいですか?
このマニュアルページを参照してください:
デフォルトでは、すべての InnoDB テーブルとインデックスはシステム テーブルスペースに格納されます。別の方法として、各 InnoDB テーブルとそのインデックスを独自のファイルに格納できます。この設定が有効なときに作成される各テーブルには独自のテーブルスペースがあるため、この機能は「複数のテーブルスペース」と呼ばれます。
表ごとの表領域の利点
テーブルを切り捨てたり削除したりするときに、ディスク領域を再利用できます。file-per-table モードがオフになっているときに作成されたテーブルの場合、切り捨てまたは削除すると、ibdata ファイル内に内部的に空き領域が作成されます。その空き領域は、新しい InnoDB データにのみ使用できます。
デフォルトのテーブルスペースにテーブルを作成したように聞こえるので、テーブルスペースを破棄することはできません。とはいえ、ディスク容量が不足していない限り、最初にテーブルスペースを破棄せずにデータをインポートできるはずです。