首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >未能使用Mongolite验证凭据

未能使用Mongolite验证凭据
EN

Stack Overflow用户
提问于 2015-04-19 17:56:59
回答 4查看 1.6K关注 0票数 3

我使用R,并尝试使用最近的“蒙古国”。但是,我无法连接到MongoDB服务器。该手册明确规定如下:

代码语言:javascript
复制
mongo(collection = "test", db = "test", url = "mongodb://localhost")

这就是我尝试过但没有成功的地方,当然,我有一个日志令牌和端口。

代码语言:javascript
复制
mongodb://heroku:TOKEN@lennon.mongohq.com:PORT 

并继续获得以下错误:

代码语言:javascript
复制
Error in mongo_collection_new(url, db, collection) : 
  Failed to authenticate credentials.
EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-04-21 08:49:02

如果您查看jeroenooms/mongolite的源代码,就会发现它还不支持身份验证:

https://github.com/jeroenooms/mongolite/blob/master/R/mongo.R

代码语言:javascript
复制
mongo_collection_new <- function(uri = "mongodb://localhost", db = "test", collection = "test"){
 stopifnot(is.character(uri))
 stopifnot(is.character(db))
 stopifnot(is.character(collection))
 .Call(R_mongo_collection_new, uri, db, collection)
}
票数 2
EN

Stack Overflow用户

发布于 2016-01-14 06:37:01

mongolite (今天的版本0.7)支持远程3.2.x MongoDB (相对于本地主机)的身份验证连接。

下面的jeroenooms示例介绍了自己的工作:

代码语言:javascript
复制
library(mongolite)
mongo(collection = "mtcars", url = "mongodb://readwrite:test@ds043942.mongolab.com:43942/jeroen_test")

解释:

  • mtcars是MongoDB“集合”(如果坚持的话是“表”)的名称。它可能是一个还不存在的名字。
  • readwrite是mongodb的用户名。
  • test是用户"readwrite“的密码
  • ds043942.mongolab.com是远程主机,可以由ip地址( 23.20.234.21 )代替。
  • 43942是端口号。默认情况下,在MongoDB中是27017
  • jeroen_test是正在使用的数据库实例的名称,它必须已经存在。

在R中运行上述命令将打印:

Mongo消息: SCRAM:验证"readwrite“(步骤1) Mongo消息: SCRAM:验证"readwrite“(步骤2) Mongo消息: SCRAM:验证"readwrite“(步骤3) Mongo消息: SCRAM:“ReadW区”认证 ..。

我试图用我自己的远程主机信息来替换它。它在一开始就不起作用,它变成了用户角色问题,而不是mongolite问题。在确保用户具有正确的readWrite角色之后,我通过mongolite包连接到远程3.2.x 。

以下两个来源对我在MongoDB中设置用户有很大帮助:

票数 3
EN

Stack Overflow用户

发布于 2020-10-20 10:25:08

只需改变顺序:

mongo( url = "mongodb://localhost",db = "test",collection = "test")

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29733638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档