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

Wt Dbo MySQL Backend connection error 'SET storage_engine=INNODB;': Unknown system variable 'storage_engine'

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

"MySQL error performing query: 'SET storage_engine=INNODB;': Unknown system variable 'storage_engine'"

MySql 在 windows 7 上 运行,最新版本 MySql Server 5.7.10.

我试过执行:

设置storage_engine=INNODB;

在 MySql 命令行中,当然会得到相同的未知系统变量 'storage_engine'”。有效的命令是:

设置默认值_storage_engine=INNODB;

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

谢谢,

我在以下链接中发现变量 "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) 通过修改函数中第 980 行附近的文件“MySQL.C”来更改 Wt::Dbo 源代码:

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 库。

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

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

希望这对外面的人有帮助...干杯!