2009-07-16 39 views
2

我正在開發一個Web應用程序,我計劃使用InnoDB。然而,我讀到有時InnoDB默認情況下未啓用,需要更改mysql配置才能啓用它......這是真的嗎?由於我的網絡應用程序將由客戶自己在自己的網絡空間安裝,因此我需要確保我的應用程序儘可能兼容。如果InnoDB默認禁用,那麼我必須尋找解決方法。MySQL中默認啓用了INNODB嗎?

回答

5

InnoDB自MySQL 4.0以來一直存在,並且編譯到大多數版本中,除了一些特殊版本之外 - 比如給OEM廠商的東西。

一些(非常便宜的)託管服務提供商選擇禁用它,因爲它使用了更多的內存。儘管它們大部分都是少數,所以你不必擔心。

「默認存儲引擎」的措辭也不需要關注你。這只是意味着當你沒有指定一個時會發生什麼。即

CREATE TABLE my_table (a int); 
- instead of - 
CREATE TABLE my_table (a int) ENGINE=INNODB; 

如果從mysqldump恢復,它將保留ENGINE信息。如果InnoDB不存在,MySQL將自動替換MyISAM(除非您更改默認的sql_mode以避免此替換)。

3

您可以檢查,看看是否你的服務器,通過使用支持InnoDB的:

SHOW [STORAGE] ENGINES

我也讀:

「在Windows必備的安裝程序做的InnoDB在Windows上MySQL的默認存儲引擎,如果安裝的服務器支持InnoDB。「

1

您可以通過SSH訪問你的服務器根目錄(或其他帳戶,然後使用su或sudo來使InnoDB獲得根訪問權限)。一旦做到這一點,檢查的/etc/my.cnf像一個條目:

skip-inndob 

如果這樣的條目存在,刪除或註釋掉的條目並重啓MySQL。 如果這樣的條目不存在,那麼還有其他問題,我們需要更多的信息。

一旦InnoDB的啓用,可以通過指定其設置爲默認的表型的my.cnf文件以下

default-table-type=innodb