系統因爲突然斷電,導致查詢mysql數據時老是失敗。報ERROR 1017 (HY000): Can't find file: 'tablename' (errno: 2)這個錯誤。
使用正常的修復表的操作對其進行修復,則查詢報相同的錯誤,修復表失敗。
仔細查看一下,這個表的數據文件,發現了問題。由於這個表做了分區,發現有個別的分區和其它的不一樣:
tablename#P#temp#p20170919.MYD
tablename#P#temp#p20170919.MYI
分區文件中多了一個“#temp”,將其重命名爲正常的名字後,查詢該表正常了。推測是程序在對分區操作的過程中正好斷電了,導致分區異常。