gpt4 book ai didi

c++ - Mysql 连接器 connect() 问题

转载 作者:行者123 更新时间:2023-11-29 20:21:40 24 4
gpt4 key购买 nike

我有一个小型 C++ 项目,需要从中访问 mySQL DB,因此我为 C++ 设置了 mySQL Connector。这是在 OS X 10.10 上完成的,编译/链接没有任何问题。

我已经为所有 mysql 内容编写了一个类,并且在构造函数中我想设置与数据库的连接。不过,这似乎有点难。

以下是类(class)中的相关部分:

class mysql{

public:

mysql(std::string server, std::string user, std::string password);

private:

sql::mysql::MySQL_Driver *driver;
sql::Connection *con;

std::string last_error = "";

};

这里是实现:

mysql::mysql(std::string server, std::string user, std::string password){

driver = sql::mysql::get_mysql_driver_instance();

try{

con = driver->connect(server, user, password);

last_error = "";

}
catch(sql::SQLException &e){

last_error = e.what();

}

}

但是,当我像这样创建该类的对象时:

mysql db("tcp://127.0.0.1:3306", "root", "secretsecret");

然后我将其放入我的last_error字符串中:

Unknown MySQL server host '???' (0)

“主机”有时会有所不同,即使我没有在代码中更改它。这似乎在内部读取了应该的不同内存位置。但即使我在调用时直接传递 connect() 变量,我也会收到此错误。与在 mysql 类内部保存这三个变量并使用它们调用 connect() 时相同。

有人知道是什么原因造成的吗?我在另一个项目中有类似的实现,它工作得很好,所以我有点困惑:/

最佳答案

这是一个post与您的情况相匹配(C++ 连接器在 Linux 上工作,但在 OSX 上失败)。

通过使用 mysql 日志记录/跟踪或在调试器中运行它,您可能能够收集更多信息以向 mysql 开发人员报告。你可能会有更好的运气。

关于c++ - Mysql 连接器 connect() 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39477264/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com