首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 不支援 InnoDB 解決方案:刪除 ibdata/ib_logfile 重建或註釋 skip-innodb

     編輯:MySQL 資料庫相關知識

現象


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 vs MyISAM 關鍵差異(選型參考)

特性InnoDBMyISAM
全文索引5.6+ 支援支援
COUNT(*)全表掃描O(1) 讀取統計
自增列索引必須單列索引可聯合索引
DELETE 表逐行刪除重建表
LOAD TABLE FROM MASTER不支援支援
行鎖支援(範圍不確定時升級表鎖)表鎖
事務/外鍵支援不支援

💡 5.0.22 某版本 default-storage-engine 可能無效,建議升級或用方案一。需事務/外鍵務必用 InnoDB:CREATE TABLE ... ENGINE=InnoDB。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved