MySQL C++连接器:SIGABRT连接数据库
MySQL C++ Connector: SIGABRT Connecting to Database
我很难克服这个错误。最近,从Ubuntu 14.04的VM更改为将Ubuntu 15.10作为我的主机操作系统。现在我对这个项目有很多问题;这是最近的一次。在执行调用此函数DB_Interface::DB_Interface(int Preset)
的代码时,我得到了一个SIGABRT信号。当从可执行文件调用此函数时,错误出现在第二个try{}catch{}
块中。所以我不认为它是SetSchema
特有的东西。
我试着重新安装了所有的mysql库和工具(这里)。我已经检查过使用相同的凭据从命令提示符访问服务器,没有问题。所以我倾向于C++连接器与某些东西的不兼容。。。价值百万美元的问题。所以我的问题是如何解决这个问题。更多信息如下:
系统信息:
- Ubuntu 15.10
- MySQL:版本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。
对于可能有相同问题的任何人,此问题都已解决。当我转到Ubuntu 15.10时,我使用了与上次设置相同的模式模型。在为一个测试项目测试了一个完全独立的模式之后,我没有发现任何问题。这让我预感到,在这个版本的MySQL和Ubuntu中重新创建我的模式可能会缓解一些问题。令人惊讶,令人惊讶。之后,我重新创建了用户"CANS_OPERATION"。我上面的摘录起了作用。为了让MATLAB包装器也能使用它,我将推荐的用于mex函数的g++-4.7编译器更改为最新版本。希望这能找到一个好的人。
相关文章:
- 无法在C++中建立与MySQL数据库的连接
- 连接 dockerized 模型和 dockerized 数据库时出现"无法 SQLConnect"错误
- C++应用程序 MySQL odbc 数据库连接错误:在引发"otl_tmpl_exception<>"实例后终止调用
- 如何在多个线程中创建 QSql数据库连接时防止名称冲突
- MySQL 连接器/C++.尝试在此过程中停止连接到数据库
- 数据库连接并将数据从C ++程序保存到MySQL
- 在 C++ 中获取数据库连接
- Firebase C++ Windows 上的实时数据库连接丢失
- 我不能使用 mysql 数据库连接同时使用插入和选择.C++
- C++ Qt SQL lite 数据库连接问题
- C++ 程序中的数据库连接检查
- 打开与 Qt/C++ 的数据库连接
- 在C++中连接 Oracle 数据库
- 如何修复数据库连接的C 程序运行时间错误(0xc0000005)
- 使用libpq组织PostgreSQL数据库连接参数
- 如何在C++代码中连接 SQL Server 数据库
- QSql数据库超出范围后,连接仍处于打开状态
- Qt 中的数据库连接池
- MySQL C++连接器:SIGABRT连接数据库
- c++连接数据库到构造函数