ホームページ >データベース >mysql チュートリアル >MySQL インポート エラー: テーブルスペースは存在しますが、テーブルは存在しませんか?

MySQL インポート エラー: テーブルスペースは存在しますが、テーブルは存在しませんか?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-01 13:07:10965ブラウズ

MySQL Import Error: Tablespace Exists But Table Doesn't?

エラー: テーブルのテーブルスペースが存在します。 IMPORT の前にテーブルスペースを破棄してください

質問:

MySQL ユーザーが、以前に存在したテーブルを作成しようとしてエラーが発生しました。エラー メッセージは、テーブルのテーブルスペースがすでに存在しているため、インポートする前にテーブルスペースを破棄する必要があることを示しています。ただし、テーブルを削除したり、テーブルスペースを破棄しようとすると、テーブルが存在しないというエラー メッセージが表示されます。この問題の原因は何ですか?

回答:

このエラーは通常、「innodb_file_per_table」モードで実行中に「テーブルスペースがいっぱいです」エラーが発生した場合に発生します。データベース サーバーのテーブルスペースは、innodb_data_file_path 設定によって定義されますが、この設定はデフォルトで制限できます。

そのような場合、OS ディレクトリに孤立した .ibd ファイルが、対応する .frm ファイルなしで存在する可能性があります。テーブルごとに保存されます (通常は /var/lib/mysql または/usr/local/var/mysql).

解決策:

問題を解決するには:

  1. 孤立した .ibd ファイルを見つけます。 files-per-table が保存されているディレクトリに移動します。
  2. .ibd ファイルを安全な一時的な場所 (/tmp/mysql_orphans など) にコピーします。

例:

$ ls /var/lib/mysql

table1.frm
table1.idb
table2.frm
table2.idb
table3.idb  <-- problem table, no table3.frm
table4.frm
table4.idb

$ mkdir /tmp/mysql_orphans
$ mv /var/lib/mysql/table3.ibd /tmp/mysql_orphans/

注: 長時間実行されるクエリやロックされたテーブルなどの根本的な原因が解決されていることを確認します。孤立した .ibd ファイルがさらに作成されるのを防ぎます。

以上がMySQL インポート エラー: テーブルスペースは存在しますが、テーブルは存在しませんか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。