9

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

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

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

4

5 回答 5

31

转到文件 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');
}
于 2013-09-12T06:54:04.253 回答
5

我在下载器的默认安装中遇到了这个错误。

因为下载器依赖于 have_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;
}
于 2014-05-28T09:54:22.700 回答
3

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

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

寻找这条线,大约在第 90 - 100 行,你会看到一组参数都被注释掉了。删除 # 使其不再是评论。您可能需要对参数的含义进行一些研究,然后您可能需要进行一些调整才能使 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 服务。

于 2013-06-27T11:11:54.157 回答
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”,也不是任何“%”)

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

这应该有望解决所有问题,它对我有用。

于 2013-09-13T01:55:49.590 回答
0

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

于 2014-01-11T03:48:59.903 回答