具有MongoDB错误的Heroku部署错误:连接被拒绝

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>',}
}

任何帮助将不胜感激。谢谢。如果需要,请给我发消息以获取更多信息。

qingwa406 回答:具有MongoDB错误的Heroku部署错误:连接被拒绝

您需要将客户端IP(在本例中为Heroku)列入白名单。其IP地址在here中进行了描述。将您的家用/笔记本电脑 IP列入白名单后,Heroku无法连接到您的集群。

要找出特定机器的地址,您可以运行例如有关机器上的以下代码:

python -c "import urllib; print(urllib.urlopen('https://wtfismyip.com/text').read())"
,

因此,我要做的就是更改设置文件。我连接到mongodb地图集的方式已经过时。 所以这是我的联系方式:

DATABASES = {
    'default': {
        'ENGINE': 'djongo','CLIENT': {
            'host': 'mongodb+srv://{username}:{password}@cluster0-gicez.mongodb.net/test?retryWrites=true&w=majority','username': {username},'password': {password},'authMechanism': 'SCRAM-SHA-1'
        }
    }
}
本文链接:https://www.f2er.com/2432374.html

大家都在问