2015-06-16 2 views
1

Я пишу приложение в C++, которое использует базу данных MySQL для хранения и сбора данных. Проблема, с которой я столкнулся, заключается в том, что я не могу заставить MySQL C++ Connector работать и работать. Документация очень неясна - IMO - и не охватывает все шаги по ее установке, чтобы я мог импортировать lib в файлы моего проекта.Установка соединителя MySQL C++

Что я сделал уже:

  • Искал в интернете за помощью, ни один хороший рабочий ответ нашел;
  • Попробуйте вручную скопировать файлы lib в/usr/local/libs /, сейчас работает половина;]
  • Попробуйте установить библиотеку Boost (требуется для подключения MySQL), работает, но все же дает мне ошибки компиляции.

Итак, как вы можете видеть, я пробовал много. Я много раз менял свой исходный код с некоторыми примерами и возможными исправлениями, которые я мог найти в Интернете, но ни один из них не работает. Вы можете изучить мою последнюю часть кода ниже.

Я понятия не имею, нормально ли работает соединитель, так как он работает без ошибок. Но, когда я выполняю программу все, что я получаю следующее сообщение об ошибке:

Segmentation fault: 11

Я строю/компиляции на Mac OS X, так что мне нужно установить разъем на этой машине. Я использую Sublime как IDE (я знаю, что это не IDE, но он работает на удивление хорошо!) И g ++ в качестве компилятора.

Также обратите внимание, что я начинаю (читаю как нет и эксперт :)) при программировании на С ++, поэтому я могу совершать некоторые «огромные» ошибки в моем коде или моей процедуре для установки этого соединителя.

Благодарю вас за чтение и надеюсь услышать полезные ответы!

Qlii256 код

Источник:

#include <iostream> 

#include "mysql_driver.h" 
#include "mysql_connection.h" 
#include <cppconn/driver.h> 
#include <cppconn/exception.h> 
#include <cppconn/resultset.h> 
#include <cppconn/statement.h> 

using namespace std; 

int main() 
{ 
    //sql::Driver *driver; // Using mysql::MySQL_Driver instead, found this fix on stackoverflow 
    sql::mysql::MySQL_Driver *driver; 
    sql::Connection *conn; 
    sql::Statement *stmt; 
    sql::ResultSet *res; 
    char e; 

    // Try a mysql db connection 
    try 
    { 
     driver = sql::mysql::get_driver_instance(); // create new db instance 

     conn = driver->connect("127.0.0.1:3306", "username", "password"); // Connect to the db 

     conn->setSchema("database_name"); // Select database to use 
    } 
    catch (sql::SQLException &e) 
    { 
     cout << "MySQL error occured: " << e.getSQLState() << endl; 
    } 

    cout << "We are connected!" << endl; 

    return 0; 
} 
+0

Это еще не работает. Я думаю, что это связано с установкой разъема. Он не документирован очень хорошо, как установить его в среде Mac OS X. – Qlii256

ответ

0

Я нашел этот старый вопрос, имея подобную проблему, а также на макинтош. Мое решение состояло в том, чтобы использовать варево.

brew install mysql-connector-c++ 
Смежные вопросы