Heroku部署,带有MongoDB错误:连接被拒绝
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Heroku部署,带有MongoDB错误:连接被拒绝相关的知识,希望对你有一定的参考价值。
pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused
您好,我在尝试以python部署Django网站时遇到了一些麻烦。尝试连接MongoDB Atlas数据库时出现此错误(如上所示)。我读到我必须将我的IP列入白名单,但是当我这样做时它没有用。这是我的views.py文件:
class Initialize():
def __init__(self, name):
self.name = name
myclient = pymongo.MongoClient('mongodb+srv://<MY Username>:<My Password>@cluster0-gicez.mongodb.net/test?retryWrites=true&w=majority')
global mydb
mydb = myclient[f"{self.name}"]
global userData
userData = mydb["userData"]
global authData
authData = mydb["auth_user"]
global storesCollection
storesCollection = mydb["stores"]
global mycolPostalCodes
mycolPostalCodes = mydb["postalCodes"]
当我尝试部署代码之前运行代码时,代码工作正常。另外,这是我的settings.py文件:
DATABASES = {
'default': {
'ENGINE': 'djongo',
'NAME': 'cluster0',
'HOST' : 'mongodb+srv://<my username>:<my password>@cluster0-gicez.mongodb.net/test?retryWrites=true&w=majority',
'USER': '<my username>',
'PASSWORD': '<my password>',
}
}
任何帮助将不胜感激。谢谢。如果需要,请给我发消息以获取更多信息。
答案
您需要将客户端IP(在本例中为Heroku)列入白名单。其IP地址描述为here。将您的home / laptop IP列入白名单后,Heroku无法连接到您的集群。
要找出特定机器的地址,您可以运行例如有关机器上的以下代码:
python -c "import urllib; print(urllib.urlopen('https://wtfismyip.com/text').read())"
以上是关于Heroku部署,带有MongoDB错误:连接被拒绝的主要内容,如果未能解决你的问题,请参考以下文章
通过 Heroku 部署时,本地 MongoDB 将无法连接
使用 ObjectRocket 插件将带有 MongoDB 应用程序的 jHipster 部署到 Heroku
部署到Heroku后,Localhost未连接到mongodb