文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  ...  /  損毀的 MyISAM 表格

18.2.4.1 損毀的 MyISAM 表格

即使 MyISAM 表格格式非常可靠(SQL 語句對表格所做的所有變更都會在語句返回之前寫入),但如果發生以下任何事件,仍然可能會發生表格損毀的情況

  • mysqld 程序在寫入過程中被強制終止。

  • 發生非預期的電腦關機(例如,電腦被關閉)。

  • 硬體故障。

  • 您正在使用外部程式(例如 myisamchk)修改正在被伺服器修改的表格。

  • MySQL 或 MyISAM 程式碼中的軟體錯誤。

損毀表格的典型症狀是

  • 從表格選取資料時,您會收到以下錯誤

    Incorrect key file for table: '...'. Try to repair it
  • 查詢找不到表格中的資料列,或傳回不完整的結果。

您可以使用 CHECK TABLE 語句來檢查 MyISAM 表格的健康狀況,並使用 REPAIR TABLE 修復損毀的 MyISAM 表格。當 mysqld 未執行時,您也可以使用 myisamchk 命令來檢查或修復表格。請參閱 第 15.7.3.2 節,「CHECK TABLE 語句」第 15.7.3.5 節,「REPAIR TABLE 語句」,以及 第 6.6.4 節,「myisamchk — MyISAM 表格維護工具」

如果您的表格經常損毀,您應該嘗試找出原因。最重要的是要知道表格是否因伺服器非預期關閉而損毀。您可以查看錯誤日誌中是否有最近的 restarted mysqld 訊息來輕鬆驗證這一點。如果有此類訊息,則表格損毀很可能是伺服器當機造成的。否則,損毀可能發生在正常運作期間。這是錯誤。您應該嘗試建立一個可重現的測試案例來演示此問題。請參閱 第 B.3.3.3 節,「如果 MySQL 持續當機該怎麼辦」第 7.9 節,「除錯 MySQL」