Ein bisschen spät hier, aber im Allgemeinen habe ich gesehen, dass dieses Problem auftritt, wenn Sie einen Fehler „tablespace full“ erhalten, wenn Sie in einem „innodb_file_per_table“-Modus laufen. Ohne zu sehr ins Detail zu gehen (mehr hier ), wird der Tablespace des Datenbankservers durch die Einstellung innodb_data_file_path definiert und ist standardmäßig ziemlich klein. Selbst größer gemacht, kann der 'Tablespace voll' immer noch bei größeren Abfragen und dergleichen auftreten (viele Nicht-Tabellen-'Sachen' werden darin gespeichert, Undo-Logs, Caches, etc...).
Wie auch immer, ich habe festgestellt, dass Sie, wenn Sie in das Betriebssystemverzeichnis schauen, in dem die Dateien pro Tabelle gespeichert sind, /var/lib/mysql standardmäßig unter OSX, /usr/local/var/mysql mit Homebrew iirc, eine finden verwaiste Datei tablename.ibd ohne die normale begleitende Datei tablename.frm. Wenn Sie diese .ibd-Datei an einen sicheren temporären Speicherort verschieben (nur um sicherzugehen), sollte das Problem behoben sein.
$ 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/
Eine Einschränkung jedoch:Stellen Sie sicher, was auch immer das Problem ursprünglich verursacht, z. lang laufende Abfrage, gesperrte Tabelle usw. wurde gelöscht. Andernfalls erhalten Sie beim zweiten Versuch einfach eine weitere verwaiste .ibd-Datei.