我正在尝试使用 MySQL C++ 连接器连接到数据库。我已经添加了库,并且源代码使用所有必要的#include 语句正确编译。我正在使用的代码如下:
#include <stdlib.h>
#include <iostream>
#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(void)
{
using namespace sql;
Driver *driver;
Connection *con;
driver = get_driver_instance();
con = driver -> connect("tcp://127.0.0.1:3306/test", "test", "test");
}
代码取自示例,应该可以正常工作。我已经显着缩短了代码,因为它位于引发错误的最终“驱动程序->连接”行。我的错误信息如下:
*** glibc detected *** /home/username/NetBeansProjects/mysql/dist/Release/GNU-Linux-x86/mysql:
free(): invalid pointer: 0x091dd468 ***
我在 Linux Mint Lisa 上,运行最新版本的 MySQL 并使用 NetBeans 7.1 作为 IDE。如前所述,代码编译正确,并且发生在最后一条连接线上。对于其他连接机制的任何帮助或建议将不胜感激。
更新
这是定义连接的 Driver 类的代码
class CPPCONN_PUBLIC_FUNC Driver
{
protected:
virtual ~Driver() {}
public:
// Attempts to make a database connection to the given URL.
virtual Connection * connect(const sql::SQLString& hostName, const sql::SQLString& userName, const sql::SQLString& password) = 0;
virtual Connection * connect(ConnectOptionsMap & options) = 0;
...
那里没什么可看的……以我的拙见……