无法使用C ++连接到mongodb

时间:2014-02-20 13:09:59

标签: c++ mongodb

OS ubuntu 13.10 64bit

使用aptitude安装的mongodb,版本2.4.6根据文档不应该是连接的问题。

我正在运行一个mongodb实例(现在的问题是localhost)。我在mongodb site中找到了示例代码,并尝试使用我拥有的客户端版本进行编译。 这不起作用,所以我已经下载了git版本并自己编译了库。 我现在没有错误,但是,当尝试连接时,我得到了“无法连接”异常。 这是代码:

int main(int argc, char** argv)
{ 
    cout<<"Mongo client test.\r\n";
    mongo::DBClientConnection conn;
    try {
        conn.connect("localhost");
    }
    catch(const mongo::DBException &e ) {
        cout <<"error connecting to localhost:"<<endl;
        std::cout << e.what()<<".\r\n";
        return -1;
    }
    cout<<"connected!";
    //cin;
    return 0;
}

这是输出:

Mongo client test.

error connecting to localhost:

can't connect .

因为它确实编译并运行,所以我看到该进程没有错误,但可能有一个连接本身,或者我可能忘记了某些内容。

实例启动并运行,JS客户端和robomongo连接到它没有问题。 任何想法将不胜感激!

2 个答案:

答案 0 :(得分:1)

似乎必须使用当前库。 虽然我已经安装了mongo-dev(aptitude),但它没有用。 当我使用下载的mongo文件夹(修复一些错误后),它运行良好。

答案 1 :(得分:0)

不是真正的答案,但评论只是不适用于这个细节:

首先,按照MongoDB网站上Installing for Ubuntu的说明进行操作。尚未检查但当前版本的版本号似乎很低。

还要在连接中包含端口号以确保完整性,确保“localhost”上的其他客户端也使用此端口。

conn.connect("localhost:27017");

两者都可以通过某种方式来诊断问题。