I don’t remember having to do this before, but I had compiled MySQL 5.1.34 recently on my dev box (os x) and I saw a warning on a create table statement. It turns out InnoDB was not enabled (or even listed in the list of storage engines.

Before:

mysql> show engines; +————+———+———————————————————–+————–+——+————+ | Engine | Support | Comment | Transactions | XA | Savepoints | +————+———+———————————————————–+————–+——+————+ | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +————+———+———————————————————–+————–+——+————+ 4 rows in set (0.00 sec)

After:

mysql> show engines; +————+———+————————————————————+————–+——+————+ | Engine | Support | Comment | Transactions | XA | Savepoints | +————+———+————————————————————+————–+——+————+ | CSV | YES | CSV storage engine | NO | NO | NO | | MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO | | MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO | | InnoDB | YES | Supports transactions, row-level locking, and foreign keys | YES | YES | YES | | MyISAM | DEFAULT | Default engine as of MySQL 3.23 with great performance | NO | NO | NO | +————+———+————————————————————+————–+——+————+ 5 rows in set (0.00 sec)

I had to recompile MySQL with the following:

./configure –prefix=/usr/local/mysql –with-plugins=innobase