Een beetje laat hier, maar over het algemeen heb ik dit probleem zien optreden wanneer je een 'tablespace full'-fout krijgt bij het uitvoeren in een 'innodb_file_per_table'-modus. Zonder al te veel in detail te treden (meer hier ), wordt de tabelruimte van de databaseserver gedefinieerd door de instelling innodb_data_file_path en is standaard vrij klein. Zelfs groter gemaakt, kan de 'tablespace full' nog steeds voorkomen bij grotere queries en dergelijke (veel niet-table 'dingen' worden daarin opgeslagen, ongedaan maken van logs, caches, enz...).
Hoe dan ook, ik ontdekte dat als je in de OS-directory kijkt waar de bestanden-per-tabel zijn opgeslagen, /var/lib/mysql standaard op OSX, /usr/local/var/mysql met homebrew iirc, je een verweesd bestand tablename.ibd zonder het normale begeleidende bestand tablename.frm. Als u dat .ibd-bestand naar een veilige tijdelijke locatie verplaatst (voor de zekerheid), zou dat het probleem moeten oplossen.
$ 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/
Een waarschuwing echter, zorg ervoor dat wat ooit het probleem oorspronkelijk veroorzaakt, b.v. langlopende query, vergrendelde tabel, enz... is gewist. Anders krijg je gewoon een ander verweesd .ibd-bestand als je het een tweede keer probeert.