你现在的位置:首页 > PHP网站建设知识库 > magento > 正文

解决magento1.7.0.2不支持mysql5.6的问题

最近在安装一个新的magento 1.7.0.2在一台新服务器上时,在安装环节magento一直报错说InnodB没有安装(Database server does not support the InnoDB storage engine).

不管是我show engines还是phpinfo()查看,我的InnodB都是正常的。

后面在google的过程中终于找到了原因,在这里分享给大家看下。

首先,报错的原因是因为Mysql 5.6.1版本已经已经丢弃了“have_innodb”这个函数.而Magento1.7.0.2以下,都是使用该函数检测Mysql是否激活了InnodB引擎。

So,我们只需要修改修改安装的代码。就能正常安装Magento了:)

首先,打开文件:app/code/core/Mage/Install/Model/Installer/Db/Mysql4.php

大概在65行你会找到以下代码:

$variables  = $this->_getConnection()
           ->fetchPairs('SHOW VARIABLES');
然后再这段代码后面添加上以下代码:

if (!isset($variables['have_innodb'])) {
        $engines = $this->_getConnection()->fetchPairs('SHOW ENGINES');
        return (isset($engines['InnoDB']) && ($engines['InnoDB'] == 'DEFAULT' || $engines['InnoDB'] == 'YES'));
}
好了,这下你的Magento可以正常安装了。。

Database server does not support the InnoDB storage engine这个错误都是Magento没有检测到InnodB引擎产生的,使用以上方法的前提是需要确定InnodB已经正常安装以及运行.可以再mysql命令行下输入:show engines;检查mysql加载了哪些引擎。