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

标签 c++ mysql

我有一个小型 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/

相关文章:

c++ - 如何查看在 Visual Studio 中预处理后的 C/C++ 源文件?

c++ - 在多重集中查找结构的语法 - C++

c++ - 自动更新最大值

mysql - 当没有发生插入时,PDO::execute 如何返回 true?

MySQL 存储过程总是选择 True

c++ - 使用 OpenGL 的 C++ 代码中未解析的外部

c++ - 具有大量案例的 Switch 语句

mysql - 在联接中使用 Where 子句,使用 Group by 和 Order By

php - 从Mysql中检索数据并存储在选项html标签中

python - 如何使用 Python 将对象插入 MySQL?