0

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

“MySQL 执行查询时出错:'SET storage_engine=INNODB;': Unknown system variable 'storage_engine'”

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

我试图执行:

设置存储引擎=INNODB;

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

SET default_storage_engine=INNODB;

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

谢谢,

4

1 回答 1

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) 通过在函数的第 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) 回到尚未重命名变量“storage_engine”的最新版本的 MySql。

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

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

于 2016-01-20T10:02:19.803 回答