報錯信息:Can't open file: 'xxx.MYI' (errno: 145),通常伴隨 Invalid SQL ... MySQL Error: 1016。
根因: MyISAM 表的索引文件(.MYI)損壞,常見於數據庫文件遷移、非正常關機、磁盤故障等場景。
service mysql stop(Windows 用 net stop mysql)。bin 目錄,執行:myisamchk -r /path/to/database/*.MYI在 PHP 或客戶端執行:
REPAIR TABLE `损坏的表名`;
等同於發送 SELECT ... 一樣發送給 MySQL 執行。

# 停止服務後
myisamchk -r /var/lib/mysql/db_name/*.MYI # Linux
myisamchk -r C:\mysql\data\db_name\*.MYI # Windows
參數 -r 表示恢復模式;若嚴重損壞可加 -f 強制修復(可能丟失數據)。
mysqldump 或文件級備份)。