我一直在尝试使用 Wt::D bo::后端::MySQL 最新版本 Wt-3.3.5 连接 MySql 数据库,但我不断收到错误:
"MySQL 执行查询时出错:"SET storage_engine=INNODB;":未知系统变量 'storage_engine'"
MySql 运行在 Windows 7 上,最新版本为 MySql Server 5.7.10。
我试图执行:
设置storage_engine=INNODB;
在 MySql 命令行中,当然会得到相同的未知系统变量'storage_engine'"。起作用的命令是:
设置default_storage_engine=INNODB;
这是否意味着Wt::D bo::后端::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::D bo 源代码:
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::D bo 库。
或
2)返回到最新版本的MySql,其中变量"storage_engine"尚未重命名。
我选择了解决方案 2 并卸载了 MySql 5.7 并安装了 MySql 5.4,现在一切正常。
希望这对那里的某人有所帮助...干杯!