Instalação do PrestaShop 1.5.3 e MySQL 5.6

Conforme escrito no post anterior sobre o Magento (clique aqui para visualizar), a variável have_innodb foi descontinuada a partir do MySQL 5.6.1 (+info) e por este motivo, a instalação do PrestaShop pode exibir erro de InnoDB, apesar do servidor possuir a engine InnoDB ativa.

No PrestaShop 1.5.3, os seguintes arquivos deverão ser modificados:
classes/db/MySQL.php
classes/db/DbPDO.php
classes/db/DbMySQLi.php

Procure pela seguinte linha:

$sql = 'SHOW VARIABLES WHERE Variable_name = \'have_innodb\'';

E substitua por isto:

$sql = 'SELECT Support FROM INFORMATION_SCHEMA.ENGINES WHERE Engine LIKE \'innodb\'';

Agora, procure pela seguinte linha, deverá estar logo abaixo da linha mencionada anteriormente:

if (!$row || strtolower($row['Value']) != 'yes')

E substitua pelo seguinte:

if (!$row || (strtolower($row['Support']) != 'yes' && strtolower($row['Support']) != 'default'))

Em breve, disponibilizarei os arquivos já modificados.

Instalação do Magento com MySQL 5.6.1+

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