Giles Williams Giles Williams - 6 months ago 17
MySQL Question

Magento install complains about missing InnoDB when it is available

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

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');
    }