访问Meteor生产数据库

44

为了查看在blah.meteor.com上的(生产)数据库中有什么,我想我们只需要执行以下操作:

meteor mongo --url http://blah.meteor.com/

但是我得到的是一个URI:

mongodb://client:984dae4c-04fb-c8bb-68f6-ed83602435cc@skybreak.member1.mongolayer.com:27017/blah_meteor_com

我该如何使用这个URI来访问数据库?

3个回答

74

您应该使用meteor mongo http://blah.meteor.com,甚至更短的meteor mongo blah.meteor.com

文档可以运行meteor help mongo获取。从上面运行帮助命令中提取:

不必打开shell,指定--url(-U)将返回适用于外部程序连接到数据库的URL。对于部署的应用程序上的远程数据库,URL有效期为一分钟。

因此,这意味着使用--url选项运行命令提供的URL是用于通过某些外部应用程序连接到数据库的,即除meteor之外的其他应用程序。

更新:

连接到MongoDB时,您应该收到类似于以下内容的问候消息:

MongoDB shell version: 2.0.2
connecting to: skybreak.member1.mongolayer.com:27017/userdb_meteor_com

输入以下命令:use userdb_meteor_com(其中userdb_meteor_com取自上述问候消息中的URL)。

要查看您的集合(通常是指在Meteor应用程序中创建的集合):show collections。您应该会得到如下结果:

system.indexes
system.users
users

现在你可以运行通常的命令,例如:db.users.find({});


谢谢。现在我能够成功连接,但每次查询时都会显示未经授权。我不记得输入任何密码。Meteor默认设置用户名和密码吗? - genkiro
请访问以下链接以查看有关生产数据库访问密码保护的博客文章:http://meteor.com/blog/2011/12/09/production-database-access-password-protection。这是原始博客文章。 - Darren Shewry
甚至更短,您可以使用:Meteor Mongo Blah - kahmali
当我尝试使用创建的URL插入数据时,出现“not authorized for insert on meteor.db.myCollection”的错误提示。我需要哪个用户/密码才能进行写操作?我正在尝试从shell中进行插入。 - Dylan Reich
meteor mongo -U <app> 获取的凭据(用户名/密码)大约会在60分钟后过期。是否有任何方法可以获取或创建永久凭据? - kynan

14

nsmeta的信息性答案的简化版本,适合快速浏览:

$ meteor mongo blah.meteor.com
connecting to: ...
> show collections
    stuff
> db.stuff.find()
    {"_id" : "abcdedghiasdjlahf", stuff: "yeah!" }

3

更新 2016:

meteor mongo 命令不再起作用,因为 blah.meteor.com 数据库版本为 3.0,而 meteor mongo 命令仍处于版本 2.6.7。 (在 Meteor 的最后一个版本 v1.2.1 上)。

相反,请安装 mongo cli 并运行此命令:

mongo `meteor mongo --url blah.meteor.com | sed 's/mongodb:\/\//-u /' | sed 's/:/ -p /' | sed 's/@/ /'`

更多细节: 在 2016 年访问 Meteor 生产数据库


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接