找了家外贸公司,网站架在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