首页 > 代码库 > Mysql5.6上安装Magento

Mysql5.6上安装Magento

找了家外贸公司,网站架在magento 1.6.2.

为了迎合公司需要,在本地安装一份供学习使用。在安装环节一直报错说Innodb没有安装。


因为本地环境使用很久了,可以很确定支持Innodb。

那肯定是magento版本的问题,打了了一个php5.4的patch(我的是php5.5),不行

又Google了一番....终于发现:

Mysql5.6版本摒弃了“have_innodb”这个变量。

而我们看这个代码/app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php

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

依然根据‘have_innodb‘来判断是否支持innodb已经行不通了。因此我们要改造一下这个代码,在Return前加入下面代码。

if (!isset($variables[‘have_innodb‘])) {        $engines = $this->_getConnection()->fetchPairs(‘SHOW ENGINES‘);        return (isset($engines[‘InnoDB‘]) && ($engines[‘InnoDB‘] == ‘DEFAULT‘ || $engines[‘InnoDB‘] == ‘YES‘));}

这样,就可以顺利安装了。

 

文章参考:

  • http://www.magentochina.org/blog/install-magento-on-mysql-5-6
  • http://my.oschina.net/phpnew/blog/113943