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

PythonAnywhere项目无法连接MongoDB的解决方案求助

解决PythonAnywhere连接MongoDB Atlas被拒绝的问题

你遇到的ServerSelectionTimeoutError和Connection refused错误,除了IP白名单问题,还可能由以下几个原因导致,按步骤排查:

  • 重新确认MongoDB Atlas白名单配置
    即使设置了0.0.0.0/0允许所有IP,也要检查是否点击了保存变更按钮,Atlas的配置不会自动生效。另外,确认是在目标集群对应的「Network Access」页面进行的配置,避免选错了项目或集群。

  • 添加PythonAnywhere的具体出站IP到白名单
    PythonAnywhere的服务器有固定的出站IP段,直接使用泛IP可能存在缓存或规则优先级问题。在PythonAnywhere控制台的「Account」→「View outbound IP addresses」里获取所有出站IP,将这些IP逐个添加到MongoDB Atlas的白名单中。

  • 检查连接字符串的正确性

    • 确认用户名、密码无误,若密码包含特殊字符(如@、#),需要进行URL编码(例如@替换为%40)
    • 确保连接字符串包含SSL参数,MongoDB Atlas强制要求SSL连接,正确的连接字符串格式示例:
      from pymongo import MongoClient
      client = MongoClient("mongodb+srv://your_username:your_encoded_password@ac-azn1hc8.voifniy.mongodb.net/?retryWrites=true&w=majority&ssl=true")
      
  • 测试网络连通性
    在PythonAnywhere的bash控制台执行以下命令,测试能否连接到MongoDB节点:

    telnet ac-azn1hc8-shard-00-00.voifniy.mongodb.net 27017
    

    如果命令返回Connection refused,说明PythonAnywhere的出站流量被限制,需要确认平台是否允许访问27017端口(默认是允许的,若有问题可联系PythonAnywhere支持)。

  • 升级pymongo版本
    旧版本的pymongo可能与MongoDB Atlas的协议不兼容,执行以下命令升级到最新稳定版:

    pip install --upgrade pymongo
    

错误信息参考:

File "/home/kaymapalo/.local/lib/python3.10/site-packages/pymongo/topology.py", line 259, in _select_servers_loop
    raise ServerSelectionTimeoutError(
pymongo.errors.ServerSelectionTimeoutError: ac-azn1hc8-shard-00-01.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms),ac-azn1hc8-shard-00-00.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms),ac-azn1hc8-shard-00-02.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms), Timeout: 30s, Topology Description: <TopologyDescription id: 65c7e303c81ca1b232fdfb16, topology_type: ReplicaSetNoPrimary, servers: [<ServerDescription ('ac-azn1hc8-shard-00-00.voifniy.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-azn1hc8-shard-00-00.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms)')>, <ServerDescription ('ac-azn1hc8-shard-00-01.voifniy.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-azn1hc8-shard-00-01.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms)')>, <ServerDescription ('ac-azn1hc8-shard-00-02.voifniy.mongodb.net', 27017) server_type: Unknown, rtt: None, error=AutoReconnect('ac-azn1hc8-shard-00-02.voifniy.mongodb.net:27017: [Errno 111] Connection refused (configured timeouts: socketTimeoutMS: 20000.0ms, connectTimeoutMS: 20000.0ms)')>]>

内容的提问来源于stack exchange,提问作者Mapalo Kanyanta

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 13:15:01