Wt Dbo MySQL后端连接错误' SET storage_engine = INNODB;':未知系统变量' storage_engine'

时间:2016-01-19 18:37:03

标签: c++ mysql wt dbo

我一直在尝试使用Wt :: Dbo :: backend :: MySQL最新版本Wt-3.3.5连接MySql数据库,但我一直收到错误:

"执行查询的MySQL错误:' SET storage_engine = INNODB;':未知系统变量' storage_engine'"

MySql在Windows 7上运行,最新版本为MySql Server 5.7.10。

我试图执行:

SET storage_engine = INNODB;

在MySql命令行中

,当然得到相同的未知系统变量' storage_engine'"。有效的命令是:

SET default_storage_engine = INNODB;

这是否意味着Wt :: Dbo :: backend :: MySQL不支持此版本的MySql?我在他们的文档和互联网上找不到任何东西。

谢谢,

1 个答案:

答案 0 :(得分:0)

我在以下链接中发现确实变量" storage_engine"已被重命名为" default_storage_engine",这导致某些软件开始遇到最新版本的MySql的问题。

https://dba.stackexchange.com/questions/101908/migrate-jira-to-mysql-unknown-system-variable-storage-engine

https://confluence.atlassian.com/display/CONFKB/Confluence+fails+to+start+with+error+'Unknown+system+variable+'storage_engine''+using+MySQL+5.7.x

有可能的解决方案:

1)通过修改文件" MySQL.C"来更改Wt :: Dbo源。 980行左右的功能:

void MySQL::init()
{
  executeSql("SET sql_mode='ANSI_QUOTES,REAL_AS_FLOAT'");
  executeSql("SET storage_engine=INNODB;");
  executeSql("SET NAMES 'utf8';");
}

首先以某种方式测试服务器的MySql版本,然后设置" default_storage_engine"变量而不是" storage_engine"。然后重新编译完整的Wt :: Dbo库。

OR

2)回到MySql的最新版本,其中变量" storage_engine"尚未重命名。

我选择了解决方案2并卸载了MySql 5.7并安装了MySql 5.4,现在一切正常。

希望这可以帮助那些人...干杯!