You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Djongo连接MongoDB出现连接超时错误,寻求解决方案

使用Djongo连接MongoDB Atlas时的连接超时错误排查方案

问题背景

尝试通过Djongo连接MongoDB Atlas集群时,出现服务器选择超时错误,所有分片节点连接均被关闭。

相关配置文件

settings.py

settings.py配置

requirements.py

requirements.py配置

docker-compose.yml

docker-compose.yml配置

报错信息

raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: 
ac-yyvwtll-shard-00-00.gcdfin1.mongodb.net:27017: connection closed,
ac-yyvwtll-shard-00-01.gcdfin1.mongodb.net:27017: connection closed,
ac-yyvwtll-shard-00-02.gcdfin1.mongodb.net:27017: connection closed, 
Timeout: 30s, Topology Description: <TopologyDescription id: 62f603001b491814aad289bb, 
topology_type: ReplicaSetNoPrimary, 
servers: [<ServerDescription ('ac-yyvwtll-shard-00-00.gcdfin1.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-yyvwtll-shard-00-00.gcdfin1.mongodb.net:27017: connection closed')>, 
<ServerDescription ('ac-yyvwtll-shard-00-01.gcdfin1.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-yyvwtll-shard-00-01.gcdfin1.mongodb.net:27017: connection closed')>, 
<ServerDescription ('ac-yyvwtll-shard-00-02.gcdfin1.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-yyvwtll-shard-00-02.gcdfin1.mongodb.net:27017: connection closed')>]>

排查与解决步骤

  • 检查Atlas IP白名单:MongoDB Atlas只允许白名单内的IP访问集群,确认你的服务器/本地机器IP已添加到Atlas控制台的IP白名单中,同时确保27017端口未被防火墙或安全组拦截。可通过以下命令测试连通性:
    nc -zv ac-yyvwtll-shard-00-00.gcdfin1.mongodb.net 27017
    
  • 验证版本兼容性:确认requirements中的Djongo版本与Atlas集群的MongoDB版本匹配,部分旧版Djongo可能不支持新版MongoDB的连接协议,建议参考Djongo官方文档使用兼容版本。
  • 修正连接字符串配置:确保settings.py中的数据库连接字符串包含必要参数:
    • 开启SSL(Atlas强制要求):ssl=True
    • 指定副本集名称:replicaSet=atlas-xxxxxx-shard-0(替换为你的集群副本集名称)
    • 认证数据库设置为admin:authSource=admin
  • 排查Docker网络限制:如果服务运行在Docker容器中,检查docker-compose的网络配置,确保容器具有外部网络访问权限。可进入容器内部执行连通性测试,确认容器内能否正常解析Atlas节点域名并建立连接。
  • 调整PyMongo连接参数:在连接配置中添加超时参数,避免因网络波动导致连接失败:
    'OPTIONS': {
        'connectTimeoutMS': 30000,
        'socketTimeoutMS': 30000,
        'heartbeatFrequencyMS': 10000
    }
    

内容的提问来源于stack exchange,提问作者Fasil K

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.23 06:09:50