我正在用c ++编写一个应用程序,该应用程序使用MySQL数据库来存储和收集数据。我遇到的问题是我似乎无法安装和工作MySQL C++连接器。文档非常不清楚 - IMO - 并且没有涵盖安装它的所有步骤,以便我可以将 lib 导入我的项目文件。
我已经做了什么:
- 在互联网上搜索寻求帮助,没有找到一个好的工作答案;
- 尝试手动将库文件复制到/usr/local/libs/,现在可以工作一半;]
- 尝试安装 Boost 库(MySQL 连接器需要),可以工作,但仍然给我编译错误。
所以,正如你所看到的,我已经尝试了很多。我已经多次更改了我的源代码,其中包含一些可以在互联网上找到的示例和可能的修复程序,但似乎都没有真正起作用。您可以在下面检查我的最新代码部分。
我不知道连接器现在是否工作正常,因为它确实构建了没有任何错误。但是,当我执行程序时,我得到的只是以下错误:
分段错误:11
我正在 Mac OS X 上构建/编译,所以我需要在那台机器上安装连接器。我正在使用Sublime作为IDE(我知道它不是IDE,但它运行得非常好!)和g ++作为编译器。
另请注意,我是 c++ 编程的初学者(阅读为不是和专家:)),因此我可能会在我的代码或安装此连接器的过程中犯一些"巨大"错误。
感谢您的阅读,希望听到一些有用的答案!
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上遇到类似问题时发现了这个老问题。我的解决方案是使用酿造。
brew install mysql-connector-c++