我正在尝试用C ++创建一个数据库管理系统,但是我连续几个小时都在努力将MySQL连接到我的程序。
我是C ++的新手,但我有Java的经验,而且从来没有像MySQL这样的痛苦。
我已尝试过以下代码的十几种变体,但我仍然没有成功。
如何将MySQL数据库连接到C ++ for Linux?
目前我的代码如下所示:
#include <iostream>
#include <stdlib.h>
#include <string>
#include <mysql_connection.h>
#include <cppconn/driver.h>
#include <cppconn/exception.h>
#include <cppconn/resultset.h>
#include <cppconn/statement.h>
#include <mysql_driver.h>
using namespace std;
int main() {
sql::mysql::MySQL_Driver *driver;
sql::Connection *con;
sql::ConnectOptionsMap connection_properties;
/* Create a connection */
driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
con = driver->connect("tcp://127.0.0.1:3306", "root", "rootpass");
/* Connect to the MySQL test database */
con->setSchema("test");
delete con;
return 0;
}
这些是我收到的错误:
错误:'get_mysql_driver_instance'不是'sql :: mysql :: MySQL_Driver'的成员 driver = sql :: mysql :: MySQL_Driver :: get_mysql_driver_instance();
CMakeFiles / SuperStorage.dir / build.make:62:目标'CMakeFiles / SuperStorage.dir / main.cpp.o'的配方失败 make [3]: * [CMakeFiles / SuperStorage.dir / main.cpp.o]错误1 CMakeFiles / Makefile2:67:目标'CMakeFiles / SuperStorage.dir / all'的配方失败 make [2]: [CMakeFiles / SuperStorage.dir / all]错误2 CMakeFiles / Makefile2:79:目标'CMakeFiles / SuperStorage.dir / rule'的配方失败 make [1]: [CMakeFiles / SuperStorage.dir / rule]错误2 Makefile:118:目标'SuperStorage'的配方失败 make:* [SuperStorage]错误2
答案 0 :(得分:1)
这是错误的:
driver = sql::mysql::MySQL_Driver::get_mysql_driver_instance();
应该是:
driver = sql::mysql::get_mysql_driver_instance();
这是clearly shown in the old MySQL C++ Connector tutorial page for connecting to a database(虽然8.0文档似乎删除了所有用法示例)。