rmongodb身份验证总是失败

时间:2015-07-27 22:59:30

标签: r mongodb authentication rmongodb

我正在尝试使用rmongodb登录,但它没有进行身份验证。这是我的连接字符串:

myMongoConnection <- mongo.create(host = "<myip>",db = "geoLoc", username = "<myusername>", password = "<mypassword>")

但是,如果我在计算机上打开mongo shell并输入:

mongo <myip>/geoLoc -u '<myusername>' -p '<mypassword>'

它连接得很好。

此外,如果我通过注释掉到服务器并禁用身份验证: auth = true,然后尝试:

myMongoConnection <- mongo.create(host = "<myip>",db = "geoLoc)"

它也可以正常工作。所以这与用户名和密码有关。我不知道虽然我知道它们是“正确的”,因为我可以用它们登录!

1 个答案:

答案 0 :(得分:2)

您可能正在运行MongoDB 3.0或更高版本的服务器版本(3.x系列当前写入),其中updated security authentication mechanism(来自MONGODB-CR的SCRAM-SHA-1)与旧版本不兼容不支持它的驱动程序版本。

截至当前rmongodb软件包发布(版本1.8.0),此驱动程序基于旧的C驱动程序实现,该实现与新的身份验证方法不兼容。正如issues on that repository中所述,作者注意到了这种驱动程序依赖性,并声明该程序包需要重写才能使用支持新身份验证方法的新API。

截至撰写时,似乎没有任何动作可以进行任何此类更改,除了建立一个目前尚未准备好发布的new branch

因此,您的选择目前是:

  • 尽可能无需身份验证的工作
  • 将MongoDB服务器版本降级为支持旧身份验证的版本
  • 查找支持新身份验证的其他驱动程序实现。

因此“rmongodb”本身当前无法连接到MongoDB 3.x服务器。如果您能够使用完全身份验证支持加速其开发到下一个版本,则应用其中一个选项,和/或自己贡献给存储库。

在此答案中链接的问题中链接或讨论了其他可能的驱动程序替代方案。