调试 pymongo 访问 - [Errno 111] 连接被拒绝

问题描述 投票:0回答:1

我正在尝试从我的虚拟专用服务器和 Godaddy 上的共享托管帐户访问 MongoDB 上的数据库。我对 pymongo 遵循相同的安装步骤,并为两者添加了公共 IP。问题是,与数据库的连接对于虚拟专用服务器可以正常工作,但对于共享主机则不然,我会收到错误

[Errno 111] Connection refused

这是代码,仅隐藏连接字符串中的部分:

from requests import get

ip = get('https://api.ipify.org').content.decode('utf8')
print('My public IP address is: {}'.format(ip))

from pymongo.mongo_client import MongoClient

uri = "mongodb+srv://[email protected]/?retryWrites=true&w=majority&ssl=true&ssl_cert_reqs=CERT_NONE"

# Create a new client and connect to the server
client = MongoClient(uri)

# Send a ping to confirm a successful connection
try:
    client.admin.command('ping')
    print("Pinged your deployment. You successfully connected to MongoDB!")
except Exception as e:
    print(e)

这是虚拟专用服务器的输出:

My public IP address is: 166.62.100.113 Pinged your deployment. You successfully connected to MongoDB! 

这是共享主机的输出:

My public IP address is: 198.71.231.19 XXXX.mongodb.net:27017: [Errno 111] Connection refused,XXXX.mongodb.net:27017: [Errno 111] Connection refused,XXXX.mongodb.net:27017: [Errno 111] Connection refused 

我确保两个 IP 都已添加到访问列表中。

那么,问题是,如何调试连接并知道是什么原因导致连接被拒绝?也许我应该添加 GoDaddy 的某种防火墙或代理?任何帮助将非常感激。

python mongodb pymongo
1个回答
0
投票

您的托管服务器可能会阻塞 mongodb 端口。

要进行调试,请连接到服务器上的 shell,并使用

mongosh
/
mongo
和连接字符串进行测试。如果它连接了,您的程序很可能也会连接。

© www.soinside.com 2019 - 2024. All rights reserved.