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

use*_*781 9 innodb wamp magento

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

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

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

Dha*_*val 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;
}
Run Code Online (Sandbox Code Playgroud)

有了这个:

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


小智 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;
}
Run Code Online (Sandbox Code Playgroud)


Rig*_*lly 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
Run Code Online (Sandbox Code Playgroud)

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