[分享]让Magento1.7.0.2支持Mysql5.6

发表于 04/21/2013 由 samshuai 已有 2 条评论

最近在部署一个新的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可以正常安装了。。

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


这篇文章被张贴在 关于Magento and was tagged with mysql, 安装

2 Responses to [分享]让Magento1.7.0.2支持Mysql5.6

  • 看看是什么?

    发表于06/02/2013 在 8:05 am

  • 请问这套程序可以在虚拟主机上安装运行吗?

    发表于10/09/2013 在 3:43 pm

评论