Я пишу приложение в 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;
}
Это еще не работает. Я думаю, что это связано с установкой разъема. Он не документирован очень хорошо, как установить его в среде Mac OS X. – Qlii256