r - 通过 Shinyapps.io 连接到 MongoDB Atlas
问题描述
我试图将我闪亮的应用程序连接到 mongodb 服务器。我在 shinyapps.io 上部署了应用程序,但一次又一次地出错:
2019-10-22T18:14:14.694520+00:00 shinyapps[1117463]: Listening on http://127.0.0.1:36739
2019-10-22T18:14:36.665309+00:00 shinyapps[1117463]: Warning: Error in : No suitable servers found (`serverSelectionTryOnce` set): [socket timeout calling ismaster on 'seaport-shard-00-01-rysq4.gcp.mongodb.net:27017'] [socket timeout calling ismaster on 'seaport-shard-00-02-rysq4.gcp.mongodb.net:27017'] [socket timeout calling ismaster on 'seaport-shard-00-00-rysq4.gcp.mongodb.net:27017']
2019-10-22T18:14:36.670320+00:00 shinyapps[1117463]: 61: mongo_collection_command_simple
2019-10-22T18:14:36.670321+00:00 shinyapps[1117463]: 60: mongo
2019-10-22T18:14:36.670322+00:00 shinyapps[1117463]: 59: server [/srv/connect/apps/Seaport/app.R#223]
2019-10-22T18:14:36.670413+00:00 shinyapps[1117463]: Error : No suitable servers found (`serverSelectionTryOnce` set): [socket timeout calling ismaster on 'seaport-shard-00-01-rysq4.gcp.mongodb.net:27017'] [socket timeout calling ismaster on 'seaport-shard-00-02-rysq4.gcp.mongodb.net:27017'] [socket timeout calling ismaster on 'seaport-shard-00-00-rysq4.gcp.mongodb.net:27017']
更有趣的是,这个应用程序在我的 PC 上本地运行良好,而且它在最近 2 周的闪亮应用程序上运行良好。
我尝试使用标准连接字符串部署应用程序:
Data <- mongo(collection = 'Data',
db = 'MaterialSeaport',
url = 'mongodb+srv://<USER>:<PASSWORD>@seaport-rysq4.gcp.mongodb.net/test?retryWrites=true&w=majority')
添加 scram sha 选项:
Data <- mongo(collection = 'Data',
db = 'MaterialSeaport',
url = 'mongodb+srv://<USER>:<PASSWORD>@seaport-rysq4.gcp.mongodb.net/test?retryWrites=true&w=majority&authMechanism=SCRAM-SHA-1')
并使用旧的连接字符串:
Data <- mongo(collection = 'Data',
db = 'MaterialSeaport',
url = 'mongodb://<USER>:<PASSWORD>@seaport-shard-00-00-rysq4.gcp.mongodb.net:27017,seaport-shard-00-01-rysq4.gcp.mongodb.net:27017,seaport-shard-00-02-rysq4.gcp.mongodb.net:27017/test?ssl=true&replicaSet=Seaport-shard-0&authSource=admin&retryWrites=true&w=majority')
如何在没有此错误的情况下将我的应用程序与 mongodb 连接?
解决方案
通过将 MongoDB Atlas 上的shinyapps.io IP 列入白名单,我能够从 shinyapps.io 连接到 MongoDB Atlas 。
- 登录到 MongoDB Atlas
- 转到项目安全部分下的网络访问
- 单击“添加 IP 地址”,添加以下 shinyapp.io IP:
- 54.204.34.9
- 54.204.36.75
- 54.204.37.78
- 34.203.76.245
- 3.217.214.132
- 34.197.152.155
这些 IP 地址可以在 中找到[shinyapps.io Accessing Databases - Firewalls documentation][1]
。该文档包含在 AWS 上列入白名单的步骤,但概念是相同的。
祝你好运!
推荐阅读
- javascript - axios 不会使用 axios-auth-refresh 库捕获错误
- java - Apache POI Excel XLSX Streaming XML 无法正确读取多个内联字符串
- python - AES - 将字符串更改为字节导致额外的“/”如何避免它
- ios - 如何防止 WKWebView 在后台状态下重新加载
- android - 如何使用 Kotlin 初始化和插入 Room 数据库?
- arrays - 出发板的 Deutschebahn API 未显示目的地站
- php - 如何删除 Woocommerce 购物车通知?
- apache - 使用 htaccess 将多个域(http https www 和非 www)重定向到新域
- javascript - 如何在反应中使用路径导入文件?
- reactjs - [GraphQL 错误]:消息:所需类型“String!”的变量“$taskId” 未提供。,位置:[object Object],路径:未定义