2009-07-16 83 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