我试图运行一个相当大的查询,它应该每晚运行以填充一个表.我得到一个错误,说Incorrect key file for table '/var/tmp/#sql_201e_0.MYI'; try to repair it
,但我使用的存储引擎(无论默认值是什么,我猜?)不支持修复桌子.
如何修复此问题,以便运行查询?
我试图运行一个相当大的查询,它应该每晚运行以填充一个表.我得到一个错误,说Incorrect key file for table '/var/tmp/#sql_201e_0.MYI'; try to repair it
,但我使用的存储引擎(无论默认值是什么,我猜?)不支持修复桌子.
如何修复此问题,以便运行查询?
存储引擎(MyISAM)不支持修复表.你应该能修好它.
如果修复失败,则表明表已严重损坏,您别无 Select ,只能从备份中恢复.
如果您的其他系统(例如,软件版本和模式相同的非生产系统)具有相同的表,那么您可能可以通过一些黑客手段(复制frm和MYI文件,然后进行修复)来修复它.
从本质上讲,诀窍是首先避免弄坏桌子.这意味着永远要干净地关闭数据库,永远不要让它崩溃,永远不要出现硬件或电源问题.在实践中,这是不太可能的,所以如果耐久性问题,你可能想考虑一个更安全的存储引擎.