MongoDB db.serverStatus()在使用针对api.cloudfoundry.com的隧道运行时出错

时间:2012-09-10 15:37:01

标签: mongodb cloudfoundry tunnel

以下是控制台会话......

C:\Users\xxx>vmc tunnel myMongoDB
Getting tunnel connection info: OK

Service connection info:
  username : uuuu
  password : pppp
  name     : db
  url      : mongodb://uuuu:pppp@172.30.xx.xx:25200/db

Starting tunnel to myMongoDB on port 10000.
1: none
2: mongo
3: mongodump
4: mongorestore
Which client would you like to start?: 2
Launching 'mongo --host localhost --port 10000 -u uuuu -p pppp db'

MongoDB shell version: 2.0.6
connecting to: localhost:10000/db
> db.serverStatus()
{ "errmsg" : "need to login", "ok" : 0 }
>

我应该使用哪些凭据登录(假设应该使用db.auth)来消除错误“ {”errmsg“:”需要登录“,”ok“:0}

当我在我的机器上运行微型CF时,它可以正常工作并给我预期的输出。

P.S。我正在尝试这个来了解我的应用程序上的当前连接,用node.js编写。尝试调试与DB连接的一些问题。如果还有其他我可以使用的替代方案,请同时提出建议。

1 个答案:

答案 0 :(得分:1)

这个应该工作!不知道为什么你的隧道没有连接,我的直接建议是尝试另一个MongoDB实例,看看是否发生了同样的错误。

如果您尝试检查node.js应用程序上的绑定服务,您应该能够在VCAP_SERVICES环境变量中检查它们。例如;

var http = require('http');
var util = require('util');

http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.write(util.inspect(process.env.VCAP_SERVICES));
  res.write("\n\n************\n\n");
  res.end(util.inspect(req.headers));

}).listen(3000);

此代码目前正在http://node-headers.cloudfoundry.com/运行以作为示例。但是,node.js应用程序的mongodb连接应自动配置为绑定服务。如果这对您不起作用,请告诉我。