你如何从MySQL(InnoDB)的"不正确的密钥文件"中恢复?

Tef*_*Ted 6 mysql mysql-error-126

Incorrect key file for table 'widgets'; try to repair it 
Run Code Online (Sandbox Code Playgroud)

这是MySQL在尝试将新索引应用于现有(非常大)表时给出的错误消息.当然,当我按照错误消息的建议尝试修复它时:

mysql> repair table widgets;
+-------------------+--------+----------+---------------------------------------------------------+
| Table             | Op     | Msg_type | Msg_text                                                |
+-------------------+--------+----------+---------------------------------------------------------+
| tedsdb.widgets    | repair | note     | The storage engine for the table doesn't support repair | 
+-------------------+--------+----------+---------------------------------------------------------+
1 row in set (0.00 sec)
Run Code Online (Sandbox Code Playgroud)

这是我最好的行动方案(在修补之前进行明显的完整备份)?

更新:我创建了一个相同模式的新表(MyISAM),复制了所有记录(插入到select中),更改了新表(InnoDB)上的引擎,重命名了损坏的表并重命名了新表,然后尝试了再次得到同样的错误.

小智 13

看起来像一个老问题,但我遇到了这个问题.MySQL正在写一个临时表到磁盘并且/ tmp分区已经填满.