A partir da versão 5.6.1 do MySQL, a variável have_innodb foi descontinuada (+info), o único problema é que o Magento usava esta variável para validar as configurações de banco de dados. Por este motivo, ao realizar uma nova instalação, o Magento acabava sempre exibindo a mensagem de erro:
Database server does not support the InnoDB storage engine.
Existem 2 alternativas para esta questão, uma delas é comentar a função supportEngine e a outra é fazer com que seja verificada de outra maneira se o servidor de banco de dados MySQL, possui ou não, o suporte a engine InnoDB ativo.
A partir da versão 1.6.0.0 do Magento, abra o seguinte arquivo:
app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php
Próximo a linha 59, procure pela função supportEngine e substitua isto:
public function supportEngine() { $variables = $this->_getConnection() ->fetchPairs('SHOW VARIABLES'); return (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') ? false : true; }
Por isto:
public function supportEngine() { $engine = $this->_getConnection() ->fetchOne('SELECT Support FROM INFORMATION_SCHEMA.ENGINES WHERE Engine LIKE "innodb"'); return (!isset($engine) || ($engine != 'DEFAULT' && $engine != 'YES')) ? false : true; }
Também disponibilizei um zip contendo o arquivo modificado, basta descompactar no diretório raiz de instalação do Magento: Clique aqui para fazer o download do ZIP contendo a correção
Para versões do Magento abaixo da 1.6.0.0, o procedimento é um pouco diferente. Abra o seguinte arquivo:
app/code/core/Mage/Install/Model/Installer/Db.php
Procure pelo seguinte trecho de código (deverá estar próximo a linha 76):
// check InnoDB support if (!isset($variables['have_innodb']) || $variables['have_innodb'] != 'YES') { Mage::throwException(Mage::helper('install')->__('Database server does not support the InnoDB storage engine.')); }
E substitua pelo seguinte:
$engine = $connection->fetchOne('SELECT Support FROM INFORMATION_SCHEMA.ENGINES WHERE Engine LIKE "innodb"'); // check InnoDB support if (!isset($engine) || ($engine != 'DEFAULT' && $engine != 'YES')) { Mage::throwException(Mage::helper('install')->__('Database server does not support the InnoDB storage engine.')); }