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

Flask对接MongoDB Atlas访问/create接口报ServerSelectionTimeoutError求助

排查步骤

  • 首先检查MongoDB Atlas的IP白名单配置:
    登录Atlas控制台,进入对应集群的「Network Access」页面,确认你当前运行Flask服务的设备公网IP已经被加入白名单。如果是本地测试临时调试,可以临时添加0.0.0.0/0允许所有IP访问(生产环境禁止此配置)。
  • 检查数据库用户权限:
    进入Atlas的「Database Access」页面,确认连接字符串中使用的test用户,拥有你连接的myFirstDatabase的读写权限,没有权限限制。
  • 调整连接参数:
    你可以在MONGO_URI末尾追加tlsAllowInvalidCertificates=true参数,避免本地证书校验失败导致连接断开,修改后的URI示例:
    app.config["MONGO_URI"] = "mongodb+srv://test:<password>@cluster0.xdweu.mongodb.net/myFirstDatabase?retryWrites=true&w=majority&tlsAllowInvalidCertificates=true"
    
  • 检查本地网络限制:
    确认本地防火墙、代理没有屏蔽27017端口的出站请求,也可以尝试切换手机热点运行代码测试,排除运营商或公司网络封锁MongoDB端口的可能。
  • 验证依赖版本兼容性:
    如果使用的pymongo版本高于4.0,可能存在和flask-pymongo、Atlas集群的兼容问题,可以尝试降级pymongo到3.12.x版本:
    pip install pymongo==3.12.3
    

你也可以在代码中新增启动时连接测试,提前判断是否连通:

# 初始化mongo之后添加
if __name__ == '__main__':
    # 测试连接
    try:
        mongo.db.list_collection_names()
        print("数据库连接成功")
    except Exception as e:
        print("数据库连接失败", e)
    app.run(debug=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 06:06:03