我尝试从本地运行连接到MongoDB Atlas上的远程mongodb设置。 我有一个来自Compose的正常mongo网址:
MONGO_URL=mongodb://[username]:[password]@aws-us-east-1-portal.21.dblayer.com:10170/[database]
这适用于本地运行和部署到Galaxy的远程连接。
我使用Atlas进行了更复杂的副本集设置,并希望从本地开发和生产中连接到该数据库集。 Atlas网址看起来像这样:
MONGO_URL=mongodb://[username]:[password]@cluster0-shard-00-00-xgnuk.mongodb.net:27017,cluster0-shard-00-01-xgnuk.mongodb.net:27017,cluster0-shard-00-02-xgnuk.mongodb.net:27017/[database]?ssl=true&replicaSet=Cluster0-shard-0&readPreference=primaryPreferred&w=majority&authSource=admin
当我部署到Galaxy时,我的应用程序成功连接到所需的Atlas数据库。但是,当我尝试将url本地设置为远程数据库时,就像我使用compose url一样,我的本地应用程序实例只连接到我的本地mongodb,没有任何警告或错误。
我尝试使用网址中的选项设置,但没有成功。我有什么想法可以实现这个目标吗?
(未启用分片)
答案 0 :(得分:1)
使用'&'环境变量中的字符可能有问题(Mac OS)。请务必在引号中键入变量:
MONGO_URL='mongodb://[username]:[password]@cluster0-shard-00-00-xgnuk.mongodb.net:27017,cluster0-shard-00-01-xgnuk.mongodb.net:27017,cluster0-shard-00-02-xgnuk.mongodb.net:27017/[database]?ssl=true&replicaSet=Cluster0-shard-0&readPreference=primaryPreferred&w=majority&authSource=admin'
此处有更多详情:
https://docs.mongodb.com/manual/reference/connection-string/