MongoDB错误:无法调用/127.0.0.1:27017/admin

时间:2014-02-03 19:28:41

标签: android mongodb

我正在尝试通过Android应用程序连接到mongodb,Mongodb正在本地运行

MongoClient mongoClient = new MongoClient();
DB db = mongoClient.getDB("dbname");

我收到的错误是无法调用的东西:/127.0.0.1:27017/admin mongodb在后面跑。

我想知道管理员为何?我的数据库中没有像管理员这样的集合。

当我使用命令行连接时,它可以工作,我能够插入和查询数据。

我不知道出了什么问题。到目前为止,我所浏览的示例中没有提到任何需要完成的配置。

请帮助!!

2 个答案:

答案 0 :(得分:0)

由于您在Android中运行应用程序,我会隐含地假设您的MongoDB服务器必须在不是127.0.0.1的其他IP地址上的其他地方运行。默认情况下,如果没有主机名/ IP地址,MongoClient会尝试在端口27017上连接到127.0.0.1的localhost环回地址(默认端口,直到指定其他内容),并且因为在localhost上运行MongoDB服务器实例而失败。我建议遵循:

  1. 查看服务器所在位置的详细信息,并获取主机名/端口详细信息。
  2. 进一步研究MongoDB Java API以及一些示例应用程序http://docs.mongodb.org/ecosystem/drivers/java/,了解如何访问在不同服务器上运行的MongoDB。

答案 1 :(得分:0)

由于您的客户端位于与服务器不同的平台上,因此您需要指定完整的主机连接,而不是使用默认值。

那说:

请勿这样做!

您肯定不希望以这种方式通过Internet访问您的MongoDB实例。您想要的是一个Web服务来代理您的请求并将它们传递给MongoDB。您可以自己做或查看可能列在此处的内容:

http://docs.mongodb.org/ecosystem/tools/http-interfaces/

出于各种原因,将您的数据库暴露在互联网上绝不是一个好主意,但最突出的两个是安全和防火墙规则,它们不允许通过某些端口进行通信。 HTTP将随处可用,是移动应用程序最有用的通信方式。