Magento install complains about missing InnoDB when it is available

Giles Williams picture Giles Williams · Mar 16, 2013 · Viewed 42.4k times · Source

During installation, Magento produces the following error:

Database server does not support the InnoDB storage engine.

I've fixed all the dependancies for Magento, and double checked with MySQL on the command line using SHOW ENGINES and definitely have InnoDB available (also the default storage engine).

This isn't an issue about access to MySQL config which others might have seen on their install.

Note: This is running on a Mac Pro (with a simple hosts DNS rewrite for the domain name I am developing for).

Answer

Michael Benjamin picture Michael Benjamin · Mar 16, 2013

Line 59 of the file app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php

Replace:

public function supportEngine()
{
    $variables  = $this->_getConnection()
        ->fetchPairs('SHOW VARIABLES');
    return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true;
}

with this:

public function supportEngine()
{
    $variables  = $this->_getConnection()
        ->fetchPairs('SHOW ENGINES');
    return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}