我正在构建一个 R 脚本 ,其中我需要通过身份验证连接到 MongoDB 并使用 rmongodb 包处理从数据库获取的数据。为此,我在 版本 3.0 中创建了一个新的 MongoDB 用户。从 R 脚本连接到 mongoDB 时, 身份验证失败。
此外,用户已通过 mongo shell 成功验证。
当我对在 MongoDB 2.x 版中创建的用户进行身份验证时,身份验证也能正常工作。

以下是我们在 R 脚本中用于连接 Mongo 数据库的代码片段。



在执行上面的代码片段时,我们收到以下响应



请建议我适当的解决方案来解决 rmongodb 包中的身份验证失败问题。

最佳答案

rmongodb(从 1.8.0 开始)使用旧版 MongoDB C 驱动程序,该驱动程序尚不完全支持 MongoDB 3.0。特别是,它将不支持使用新的 SCRAM-SHA-1 默认身份验证或可选的 WiredTiger 存储引擎。

Github 中有一个 rmongodb 问题在跟踪这个: Compatibility with version 3.0 of MongoDB

rmongodb 更新之前,您的选项(按最少到最麻烦的顺序)包括:

  • 使用不同的驱动程序,它确实有 MongoDB 3.x 支持(即 RMongo 0.1.0 or newer )
  • 使用 MongoDB 2.6
  • 使用 MongoDB 3.x 但降级到较旧的 MONGO-CR 身份验证(并且不使用 WiredTiger 或任何替代存储引擎)
  • 关于rmongodb 对 MongoDB 3 的支持,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31065196/

    10-12 16:40