tags:

views:

319

answers:

2

I just went to look over one my site's databases and noticed that all of the tables had been converted to MyISAM (they used to be InnoDB).

What's more is that InnoDB seems to missing, along with BerkeleyDB, Federated, and others.

A few months ago I upgraded from MySql 5.0 to 5.1.38. I can't imagine that I wouldn't have noticed if InnoDB was not installed after the upgrade, but maybe it's been that way since the upgrade. Having several 10 GB tables automatically convert themselves to MyISAM without hearing about any downtime seems very unlikely to me.

Regardless, the mysql system variable have_innodb is set to NO. Can I simply change that to YES or does that mean InnoDB is missing from the install?

+1  A: 

If the field in SHOW ENGINES is "no" it means it's not compiled in. You would have to either compile the server again, compile the innodb plugin and load it or fetch server binaries which have it enabled.

johannes
+1  A: 

You can't simply set the mysql system variable to YES to convert the table from MyISAM to InnoDB.

ALTER TABLE t1 ENGINE=InnoDB;

When InnoDB support is turned off even is you use ENGINE=InnoDB in your create table statements, the table will use the default storage engine for MySQL which is normally MyISAM.

Yada