如何将 mongodb 客户端连接到本地 Meteor MongoDB

Posted

技术标签:

【中文标题】如何将 mongodb 客户端连接到本地 Meteor MongoDB【英文标题】:How to connect mongodb clients to local Meteor MongoDB 【发布时间】:2014-03-28 01:16:06 【问题描述】:

如何将 Robomongo(或任何其他 mongodb 客户端)连接到由本地 Meteor 应用程序创建的 mongodb 实例?

【问题讨论】:

嗨@user3330705,如果您认为答案非常有用并且它实际上是完整/最佳的,那么您可以将其标记为已接受的答案,以便阅读这篇文章的人知道它有效。 How is MongoDb installed by Meteor? 的可能重复项 我在 OS X 上,使用过 robomongo:我只使用了localhost 和端口3001,没有任何身份验证进行连接。 【参考方案1】:

确保 Meteor 正在本地主机上运行。打开终端窗口并运行meteor 命令。如果您没有更改为端口,它将开始在 localhost:3000 上运行。

当它运行时,打开一个单独的终端窗口并运行meteor mongo 命令。这将打开一个 MongoDB shell 并告诉您它连接到的端口。这通常是 3001,从版本 0.7.1.1 开始,如果更早,则为 3002。它会说类似127.0.0.1:3001/meteor

转到 Robomongo(或您最喜欢的 mongodb 客户端软件)并创建一个新连接,确保将连接地址更改为 localhost 和给定的端口号。如果您的客户不坚持使用默认数据库,则无需额外定义 /meteor。

正如https://***.com/a/22023284/1064151 中指出的,某些驱动程序可能需要特定的行尾、分隔符或其他字符流。例如,ObjCMongoDB 基于 C 的驱动程序希望 url 为 127.0.0.1:3001/ 并在末尾加上额外的 /,否则它将不起作用。因此,请务必检查您的驱动程序/客户端的文档。

【讨论】:

我正在尝试同样的事情。我使用 mongoDB 驱动程序写入我的流星 mongoDB。在我使用127.0.0.1:3002 之前,就像您在上面所说的那样。现在我知道端口已转移到:3001,但该地址仍然不适合我。数据库名称是否也发生了变化?更清楚地说,一旦我连接到我的本地主机127.0.0.1:3002,我还需要我的数据库名称,即meteor.collection。这是否也随着更新而改变? 想通了。为特定的 mongoDB 驱动程序添加了另一个答案。 @Nate 我刚刚更新了答案以反映该信息。谢谢指点。 很高兴了解 ObjCMongodb 和 Robomongo 客户端,没有必要给 /,我认为 3001 就足够了,我测试了它,它对我来说很好用 这对我不起作用。我在 Windows 上使用 Robomongo。我的 Hosts 文件包含 192.168.56.111 my-vm,我可以使用 my-vm:3000 连接到我的流星应用程序,所以我知道该应用程序正在运行。当我尝试使用 my-vm:3001 连接时,它无法建立连接 - 有什么想法吗?【参考方案2】:

获取当前配置详细信息的最简单方法是使用以下命令

meteor mongo -U

这将为您提供连接字符串

【讨论】:

【参考方案3】:

从终端运行以下命令

meteor mongo -U

这将向您显示本地主机 IP 地址以及您的应用程序在哪个端口上运行。现在运行 Robomongo 并配置为通过运行上一个命令获得的以下两个字段

【讨论】:

已连接,但看不到收藏。有什么想法吗? 同样的问题 - 已连接但没有集合 - 你解决了吗?【参考方案4】:

我正在使用ObjCMongoDB,一个基于 C 的 mongoDB 驱动程序。有了新的更新,而不是使用以前的 127.0.0.1:3002 连接到运行流星的 mongodb 的本地主机,我现在需要使用 127.0.0.1:3001/,集合名称仍然是 meteor.collection。重要的变化是从:3002:3001/ 的端口。记住/,它对连接至关重要。

【讨论】:

【参考方案5】:

这对我有用,在连接之前确保流星正在运行。 我正在使用 Robomongo 进行连接。创建新连接并添加 地址为:本地主机; 端口为:3001

【讨论】:

【参考方案6】:

通过以下命令使用 SSH 隧道:

ssh -L 3001:localhost:3001 user-name@host

它将连接从本地端口 3001 转发到服务器上的 localhost:3001。现在我们可以简单地连接到我们的数据库。

在您的 localhost 上创建一个 Robomongo 连接并点击 Test(在两次检查中,身份验证可能会失败):

【讨论】:

【参考方案7】:

我也在使用 Robomongo,在最新更新 V0.7.1 之前,我使用端口 3002 进行连接,正如 @Serkan Durusoy 建议的最新更新,它适用于 3001 端口

【讨论】:

【参考方案8】:

@imal365 答案是完美的。只是为了补充我的见解:

我意识到默认的 Meteor Mongo 端口号是添加了 1 的应用程序的端口号(从版本 0.7.1.1 开始)。就我而言,我使用命令meteor --port 1337 在端口1337 上运行Meteor,而我的Meteor Mongo 端口是1338

【讨论】:

以上是关于如何将 mongodb 客户端连接到本地 Meteor MongoDB的主要内容,如果未能解决你的问题,请参考以下文章

MEAN Stack - 将云 MongoDB 连接到 Angular 应用程序?

使用 Nodejs Restful API 将 android 应用程序连接到本地 mongoDB 数据库并将数据存储在 Mongodb 中(通过 WiFi)

如何通过蓝牙将 iPhone 连接到本地 Python 客户端?

使用 TLS 将 pymongo 客户端连接到 mongodb 服务器

流星连接到另一个 mongodb(不是本地的)

Node.js - 在 Heroku 上使用 MongoHQ 连接到 MongoDB