MySQL C ++ Connector: соединение SIGABRT с базой данных

Мне трудно преодолеть эту ошибку. Недавно я перешел с виртуальной машины Ubuntu 14.04 на ОС Ubuntu 15.10. Теперь у меня есть множество проблем с этим проектом; этот самый последний. Я получаю сигнал SIGABRT при выполнении кода, который вызывает эту функцию DB_Interface::DB_Interface(int Preset), Когда эта функция вызывается из исполняемого файла, ошибка возникает во втором 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.

1

Решение

Для тех, кто может иметь такую ​​же проблему, это было решено. Когда я перешел на Ubuntu 15.10, я использовал ту же модель схемы, что и в прошлой настройке. После тестирования совершенно отдельной схемы для тестового проекта я не заметил никаких проблем. Это дало мне догадку, что воссоздание моей схемы в этой версии MySQL и Ubuntu может облегчить некоторые проблемы. Сюрприз, сюрприз это сделал. После этого я воссоздал пользователя «CANS_OPERATION». Мой отрывок выше тогда сработал. Чтобы заставить оболочку MATLAB работать с ней, я перешел с рекомендуемого компилятора g ++ — 4.7 для функций mex на самый последний выпуск. Надеюсь, что это находит кого-то хорошо.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]