Trochę późno, ale generalnie widziałem ten problem, gdy pojawia się błąd „obszar tabel pełny” podczas pracy w trybie „innodb_file_per_table”. Bez wchodzenia w zbyt wiele szczegółów (więcej tutaj ), obszar tabel serwera bazy danych jest zdefiniowany przez ustawienie innodb_data_file_path i domyślnie jest raczej mały. Nawet powiększony, „pełny obszar tabel” może nadal występować w przypadku większych zapytań itp. (Mnóstwo „rzeczy” nie związanych z tabelą jest tam przechowywanych, cofanie dzienników, pamięci podręczne itp.).
W każdym razie odkryłem, że jeśli zajrzysz do katalogu systemu operacyjnego, w którym przechowywane są pliki na tabelę, /var/lib/mysql domyślnie na OSX, /usr/local/var/mysql z homebrew iirc, znajdziesz osierocony plik nazwa_tabeli.ibd bez normalnego pliku towarzyszącego nazwa_tabeli.frm. Jeśli przeniesiesz ten plik .ibd do bezpiecznej lokalizacji tymczasowej (dla pewności), to powinno rozwiązać problem.
$ 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/
Jedno zastrzeżenie, upewnij się, że to, co pierwotnie powoduje problem, np. długotrwałe zapytanie, zablokowana tabela itp. zostały wyczyszczone. W przeciwnym razie przy drugiej próbie otrzymasz kolejny osierocony plik .ibd.