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

求助:连接MongoDB Atlas免费集群首次失败,报MongoError错误

解决MongoDB Atlas连接失败:MongoError: getaddrinfo EAI_AGAIN

嘿,我来帮你拆解这个连接问题!你碰到的EAI_AGAIN错误本质是DNS解析失败——简单说就是你的机器没法把MongoDB Atlas的集群域名转换成对应的IP地址,所以连不上服务器。下面是常见的原因和对应的解决办法:

  • 网络与DNS配置问题
    这是最常见的诱因:

    • 先确认你的网络能正常访问外网,比如打开浏览器试试访问其他网站,排除网络断连的情况。
    • 本地开发的话,可以切换DNS服务器试试,比如换成Google的8.8.8.8或者Cloudflare的1.1.1.1,很多时候本地ISP的DNS解析不稳定会导致这个问题。
    • 如果是在服务器上运行,检查服务器的DNS配置是否正确,或者重启网络服务(比如Linux上执行sudo systemctl restart networking,不同系统命令略有差异)。
  • MongoDB Atlas IP白名单配置错误
    虽然错误提示是DNS,但白名单配置不当也可能间接导致连接异常,建议顺便确认:

    • 登录MongoDB Atlas控制台,检查你的当前IP是否在项目的IP白名单列表里。如果不确定,可以暂时把白名单设为0.0.0.0/0(仅限测试使用,生产环境一定要改成具体IP),看看能不能连接成功。
  • 连接字符串的潜在问题
    仔细检查你的连接字符串:

    • 确认用户名和密码是否正确,尤其是密码里有特殊字符(比如@、$、!)时,必须进行URL编码。例如@要换成%40,$换成%24。
    • 你使用的useMongoClient参数在Mongoose 5.x版本之后已经被废弃了,建议替换成新的参数配置,避免兼容性问题:
      mongoose.connect(
        "mongodb://username:password6@cluster0-shard-00-00-3xdjv.mongodb.net:27017,cluster0-shard-00-01-3xdjv.mongodb.net:27017,cluster0-shard-00-02-3xdjv.mongodb.net:27017/test?ssl=true&replicaSet=Cluster0-shard-0&authSource=admin",
        { 
          useNewUrlParser: true, 
          useUnifiedTopology: true 
        }
      )
      
    • 确认连接字符串是直接从Atlas控制台复制的,避免手动输入时打错集群域名。
  • 防火墙或代理拦截

    • 检查本地或服务器的防火墙规则,是否允许出站访问27017端口(MongoDB的默认端口)。
    • 如果你的网络使用了代理,确认代理配置正确,或者暂时关闭代理后尝试连接。

先从DNS和网络方面开始排查,这些是最容易解决的点,然后再依次检查其他配置,应该能解决问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 03:48:29