如何在Ubuntu上将MySQL数据库连接到C ++?

时间:2018-02-17 16:49:21

标签: c++ mysql ubuntu

我正在尝试用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

1 个答案:

答案 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文档似乎删除了所有用法示例)。