首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL InnoDB 錯誤「Cannot find or open table」:.frm 殘留檔案導致的資料字典不一致修復

     編輯:MySQL 綜合教學

MySQL InnoDB 錯誤「Cannot find or open table」:.frm 殘留檔案導致的資料字典不一致修復

錯誤日誌出現 Cannot find or open table phpwind/pw_zhuanti from the internal data dictionary of InnoDB though the .frm file for the table exists,表明 InnoDB 內部資料字典與檔案系統不一致:表已刪除但 .frm 殘留。

一、錯誤根因分析

  • 直接刪除資料庫目錄下的 .ibd/.frm 檔案,而非 DROP TABLE;
  • 手動移動 .frm 至其他資料庫目錄;
  • InnoDB 表空間遷移未清理舊 .frm;
  • 引擎版本不支援該表的索引類型。

二、標準修復流程

  1. 定位殘留檔案:
    find /var/lib/mysql -name "pw_zhuanti.frm"
  2. 確認表已不存在:
    mysql> SHOW TABLES FROM phpwind LIKE 'pw_zhuanti'; → Empty set
  3. 刪除殘留 .frm:
    rm /var/lib/mysql/phpwind/pw_zhuanti.frm
  4. 重啟 MySQL 服務(可選,釋放字典快取):
    service mysqld restart
  5. 驗證錯誤日誌不再出現該錯誤。

三、預防最佳實踐

  • 嚴禁直接操作資料目錄檔案,全部透過 SQL DROP TABLE/RENAME TABLE;
  • 遷移表空間使用 ALTER TABLE ... IMPORT TABLESPACE 官方流程;
  • 定期巡檢 information_schema.tables 與檔案系統一致性。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved