【问题标题】:Connect a mongo atlas connection to play framework app连接一个mongodb atlas连接播放框架app
【发布时间】:2021-10-24 07:43:47
【问题描述】:

我可以成功地将 独立集群 连接到我的 Play Framework (2.7) 应用(使用 ReactiveMongo 0.17.1)并且我可以连接Mongo Compass 到我的副本集(在 MongoDb Atlas 中创建)但在将我的 MongoDb Atlas 副本集连接到我的 Play 时遇到很大问题框架 应用程序。这应该是在application.conf文件中使用connection string的情况;即

mongodb.uri = <connectionString>

实际上ReactiveMongo documentation 将其描述为:

mongodb.uri = "mongodb+srv://${ATLAS_USERNAME}:${ATLAS_PASSWORD}@cluster0-p8ccg.mongodb.net/test?retryWrites=true&w=majority"

  • 有 3 个变量 ${ATLAS_USERNAME}${ATLAS_PASSWORD}test(默认数据库名称)

MongoDb Atlas 文档(登录时)将connection string 描述为如下公式:

mongodb+srv://<username>:<password>@cluster0.pwe0y.mongodb.net/myFirstDatabase?retryWrites=true&w=majority

  • 有 3 个变量 <username><password>myFirstDatabase(默认数据库名称)

所以除了地址上的一些可变差异(我使用 Atlas 中的那个,因为它与我的详细信息不同)

重复出现的错误如下:

[error] r.c.a.MongoDBSystem - [Supervisor-1/Connection-2] Fails to send a isMaster request to cluster0-shard-00-01.pwe0y.mongodb.net:27017 (channel #ac1cfe76) javax.net.ssl.SSLException: SSLEngine closed already at reactivemongo.io.netty.handler.ssl.SslHandler.wrap(...)(Unknown Source)

注意事项:

  • 我有 node.js v12.14.1
  • 用户被授予适当的权限
  • 选项参数也已经过URL encoded 测试
  • 我的 IP 地址在 IP Access List(在 Mongo Atlas 中)

【问题讨论】:

  • 您如何连接到 MongoDB Atlas?您的应用是在本地还是在云端(AWS、Azure、GCP 等)?您使用 VPC 对等互连还是私有端点?如果您尝试通过 Internet 连接到 Atlas,您是否允许应用程序的公共 IP 地址访问 Network Access 区域(白名单)中的 Atlas?
  • @barrypicker 谢谢。我确实记得在设置数据库时有这些选项,但我不记得我选择了什么。我怎么能找到(当我环顾四周或在网上寻找答案时并不明显)?我目前正在使用免费版本用于开发目的 - M0 Sandbox
  • 在集群视图中,向左看可以看到Network Access。您可以在此处添加应用的公共 IP 地址以允许流量。您必须能够区分私有 IP 和公共 IP。导航到whatismyipaddress.com时可以看到你的公共IP地址
  • @barrypicker - 对不起,我还应该补充一点,我的 IP 地址已经在 IP Access List
  • 请检查这是否相关:jira.mongodb.org/browse/SCALA-501

标签: mongodb mongodb-atlas reactivemongo


【解决方案1】:

对于连接,您应该像这样传递mongodb.uri

mongodb.uri = "mongodb+srv://${ATLAS_USERNAME}:${ATLAS_PASSWORD}@cluster0-p8ccg.mongodb.net"

不要使用完整的连接字符串 URL 进行连接。

【讨论】:

    【解决方案2】:

    如果 Atlas 未在 DNS SRV 中设置 authSource=admin,请确保将 ?authSource=admin 添加到连接 URI。

    还要注意,0.17 已经超过两年了,不会得到修复。

    【讨论】:

      猜你喜欢
      • 2020-08-16
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-28
      • 2019-06-08
      相关资源
      最近更新 更多