InnoDB工作,仍显示“数据库服务器不支持InnoDB存储引擎消息”

时间:2013-06-24 20:27:51

标签: magento wamp innodb

我尝试使用WAMP在本地服务器上安装Magento。 InnoDB被设置为默认引擎,但它仍然显示消息:

  

数据库服务器不支持InnoDB存储引擎。

我真的不知道该怎么做。有人可以帮忙吗?

5 个答案:

答案 0 :(得分:30)

转到文件app / code / core / Mage / Install / Model / Installer / Db / Mysql4.php的第59行

替换:

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

有了这个:

public function supportEngine()
{
    $variables  = $this->_getConnection()
        ->fetchPairs('SHOW ENGINES');
    return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}

答案 1 :(得分:5)

我在下载程序的默认安装中遇到此错误。

因为下载器依赖于has_innodb变量,即来自mysql 5.6.1版。不可用和官方文档(http://dev.mysql.com/doc/refman/5.6/en/server-system-variables.html#sysvar_have_innodb)声明使用“SHOW ENGINES”,我已相应地修改了下载程序文件:

/**
 * Check availabe InnoDB on database.
 *
 * @return Magento_Downloader_Validator
 */
protected function _checkDbInnoDb()
{
    if (!$this->_connection) {
        return $this;
    }

    $result = $this->_connection->query('SHOW ENGINES');
    while($row = $result->fetch()){
        if($row["Engine"] == "InnoDB" && $row["Support"] != "NO"){
            $this->addMessage('Database server supports InnoDB storage engine');
            return $this;
        }
    }
    $this->addError('Database server does not support InnoDB storage engine');
    return $this;
}

答案 2 :(得分:3)

如果我正确记得WAMP Server禁用了innodb,但激活它是一项简单的工作。

编辑my.ini(使用wampmanager菜单进行编辑)

寻找这条线,大致在90-100线附近,你会看到一组所有注释掉的参数。删除#所以它不再是评论。您可能需要对params的含义进行一些研究,然后您可能需要进行一些调整以使innodb正常工作,但只要取消注释就可以激活innodb。

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = D:/wamp/bin/mysql/mysql5.5.28/data/
innodb_data_file_path = ibdata1:64M:autoextend
innodb_log_group_home_dir = D:/wamp/bin/mysql/mysql5.5.28/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 4M

更改并保存ini文件后重新启动MySQL服务。

答案 3 :(得分:0)

1)再次删除并粘贴Magento

2)转到MySQL>> my.ini并将代码更改为以下内容(检查版本号):

# Uncomment the following if you are using InnoDB tables
innodb_data_home_dir = D:/wamp/bin/mysql/mysql5.5.28/data/
innodb_data_file_path = ibdata1:10M:autoextend
innodb_log_group_home_dir = D:/wamp/bin/mysql/mysql5.5.28/data/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
innodb_buffer_pool_size = 16M
innodb_additional_mem_pool_size = 4M

3)转到app / code / core / Mage / Install / Model / Installer / Db / Mysql4.php并将代码更改为以下内容:

public function supportEngine()
{
    $variables  = $this->_getConnection()
        ->fetchPairs('SHOW ENGINES');
    return (isset($variables['InnoDB']) && $variables['InnoDB'] != 'NO');
}

4)转到phpMyAdmin并确保您的用户在主机127.0.0.1上(不是" localhost"没有任何"%")

如果没有本网站上的人们的贡献,我就不会让它工作,所以归功于我和其他网页上的其他用户。

这应该有希望解决所有问题,它与我合作。

答案 4 :(得分:0)

它的发生是因为较新的版本不支持innodb存储。请从他们的官方网站安装以前版本的Wamp的mysql。无需安装完整的wamp。只是mysql。并在需要时从中选择正确版本的mysql 瓦帕。