【问题标题】:MySQL C++ Connector: SIGABRT Connecting to DatabaseMySQL C++ 连接器:SIGABRT 连接到数据库
【发布时间】:2015-11-05 03:30:38
【问题描述】:

我很难克服这个错误。最近,从 Ubuntu 14.04 的 VM 更改为将 Ubuntu 15.10 作为我的主机操作系统。现在我对这个项目有很多问题;这是最新的。执行调用此函数DB_Interface::DB_Interface(int Preset) 的代码时,我收到一个 SIGABRT 信号。从可执行文件调用此函数时,第二个try{}catch{} 块中会出现错误。所以我不认为这是SetSchema 特有的东西。

我已尝试重新安装所有 mysql 库和工具 (HERE)。我已经检查了使用相同凭据从命令提示符访问服务器没有问题。所以我倾向于 C++ 连接器与某些东西不兼容......百万美元的问题。所以我的问题是如何解决这个问题。更多信息如下:

系统信息:

  • Ubuntu 15.10
  • MySQL:Ver 14.14 Distrib 5.6.27

代码摘录:

DB_Interface::DB_Interface(int Preset) {

try{
    driver = sql::mysql::get_mysql_driver_instance();
    flags[0] = 0;
}
catch(...)
{
    flags[0] = 1;
    printf("DB_Interface: Flag 0 has been set.");
    throw Except;
}
try{
    con = driver->connect("localhost:3306", "CANS_OPERATION", "SMOOTH_OPERATOR");
    flags[1] = 0;
}
catch(...)
{
    flags[1] = 1;
    printf("DB_Interface: Flag 1 has been set.");
    throw Except;
}

try{
    con->setSchema("CANS_SQL"); //SIGABRT occurs in executing this line.
    std::string Query = "UNLOCK TABLES";
    sql::Statement *stmt;
    stmt = con->createStatement();
    stmt->execute(Query);
    flags[4] = 0;
}
catch(sql::SQLException &e)
{
    flags[4] = 1;
    printf("DB_Interface: Flag 4 has been set");
    throw Except;
}

编辑 1 下面的尝试也没有成功。

sudo apt-get install cpp:i386 gcc:i386 g++-5:i386 gcc-5:i386 g++:i386 libboost-dev:i386 binutils:i386

然后重新安装 libmysqlcppconn-dev。

【问题讨论】:

  • 是否需要指定协议,例如con = driver->connect("tcp://localhos...
  • 这将是我明天早上尝试的第一件事,但我会感到惊讶,因为我以前没有这样做。
  • 同样的错误结果。

标签: c++ mysql ubuntu ubuntu-15.10


【解决方案1】:

对于可能遇到相同问题的任何人,此问题已得到解决。当我迁移到 Ubuntu 15.10 时,我使用了与上次设置相同的模式模型。在测试项目的完全独立架构上进行测试后,我没有发现任何问题。这让我有预感,在这个版本的 MySQL 和 Ubuntu 中重新创建我的模式可能会缓解一些问题。惊喜,惊喜竟然出现了。之后我重新创建了用户“CANS_OPERATION”。我上面的摘录然后起作用了。为了让 MATLAB 包装器也能使用它,我将推荐的用于 mex 函数的 g++-4.7 编译器更改为最新版本。希望这能找到合适的人。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-19
    • 2011-11-18
    • 2019-12-09
    • 2012-04-27
    • 2013-07-26
    • 2013-07-21
    相关资源
    最近更新 更多