mysql> SHOW VARIABLES LIKE "have_%";
...
have_innodb | DISABLED -- 藍字顯示不支援
執行含 InnoDB 表的 SQL 報錯:The 'InnoDB' feature is disabled
# 停止服務
mysqladmin -uroot -p shutdown
# 刪除數據目錄下三個文件
rm -f /var/lib/mysql/ibdata1 /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile1
# 安全模式啟動讓其自動重建
sudo mysqld_safe &
# 編輯 my.cnf / my.ini
# 找到 skip-innodb → 註釋掉
# skip-innodb
# 或顯式啟用
default-storage-engine=INNODB
# 重啟驗證
mysql> SHOW VARIABLES LIKE "have_innodb";
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| have_innodb | YES |
+---------------+-------+
| 特性 | InnoDB | MyISAM |
|---|---|---|
| 全文索引 | 5.6+ 支援 | 支援 |
| COUNT(*) | 全表掃描 | O(1) 讀取統計 |
| 自增列索引 | 必須單列索引 | 可聯合索引 |
| DELETE 表 | 逐行刪除 | 重建表 |
| LOAD TABLE FROM MASTER | 不支援 | 支援 |
| 行鎖 | 支援(範圍不確定時升級表鎖) | 表鎖 |
| 事務/外鍵 | 支援 | 不支援 |
💡 5.0.22 某版本
default-storage-engine可能無效,建議升級或用方案一。需事務/外鍵務必用 InnoDB:CREATE TABLE ... ENGINE=InnoDB。