Ở đây hơi muộn nhưng nói chung tôi đã thấy sự cố này xảy ra khi bạn gặp lỗi 'đầy không gian bảng' khi chạy ở chế độ 'innodb_file_per_table'. Không đi vào quá nhiều chi tiết (thêm tại đây ), vùng bảng của máy chủ cơ sở dữ liệu được xác định bởi cài đặt innodb_data_file_path và theo mặc định là khá nhỏ. Ngay cả khi được làm lớn hơn, 'không gian bảng đầy' vẫn có thể xảy ra với các truy vấn lớn hơn và như vậy (rất nhiều 'nội dung' không phải bảng được lưu trữ trong đó, hoàn tác nhật ký, bộ nhớ đệm, v.v.).
Tuy nhiên, tôi thấy rằng nếu bạn tìm trong thư mục OS nơi lưu trữ tệp trên mỗi bảng, / var / lib / mysql theo mặc định trên OSX, / usr / local / var / mysql với homebrew iirc, bạn sẽ tìm thấy tệp tablename.ibd mồ côi mà không có tệp tablename.frm đồng hành bình thường. Nếu bạn di chuyển tệp .ibd đó đến một vị trí tạm thời an toàn (chỉ để an toàn) sẽ khắc phục được sự cố.
$ 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/
Tuy nhiên, một lưu ý, hãy đảm bảo nguyên nhân gây ra sự cố, ví dụ:truy vấn đang chạy lâu, bảng bị khóa, v.v ... đã bị xóa. Nếu không, bạn chỉ kết thúc với một tệp .ibd mồ côi khác khi bạn thử lại lần thứ hai.