ここでは少し遅れていますが、一般的に、「innodb_file_per_table」モードで実行しているときに「tablespacefull」エラーが発生したときにこの問題が発生するのを見てきました。詳細に立ち入ることなく(こちら )、データベースサーバーのテーブルスペースはinnodb_data_file_path設定で定義され、デフォルトではかなり小さいです。大きくしても、「テーブルスペースがいっぱい」は、クエリなどが大きくなると発生する可能性があります(テーブル以外の「もの」がたくさん格納され、ログやキャッシュなどを元に戻します)。
とにかく、files-per-tableが保存されているOSディレクトリを見ると、OSXではデフォルトで/ var / lib / mysql、homebrewiircでは/usr / local / var/mysqlが見つかります。通常のコンパニオンtablename.frmファイルのない孤立したtablename.ibdファイル。その.ibdファイルを(安全のために)安全な一時的な場所に移動すると、問題が解決するはずです。
$ 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/
ただし、注意点が1つあります。たとえば、元々問題の原因となっているものを確認してください。長時間実行されているクエリ、ロックされたテーブルなどがクリアされました。そうしないと、2回目の試行時に、別の孤立した.ibdファイルが作成されてしまいます。