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

部署 mongodb 和 express 项目时出错

Prisma 1 + MongoDB Atlas 部署到 Heroku 返回错误 404

MongoDB 和 Heroku 部署