我一直在尝试使用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?我在他们的文档和互联网上找不到任何东西。
谢谢,
答案 0 :(得分:0)
我在以下链接中发现确实变量" storage_engine"已被重命名为" default_storage_engine",这导致某些软件开始遇到最新版本的MySql的问题。
有可能的解决方案:
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,现在一切正常。
希望这可以帮助那些人...干杯!