【发布时间】: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