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

Ubuntu服务器通过Node.js连接MongoDB Atlas失败求助

解决Ubuntu服务器连接MongoDB Atlas时的querySrv ENOTFOUND错误

可能的解决方案

1. 排查DNS解析问题

  • 先在Ubuntu服务器上手动测试SRV记录解析,执行命令:
    dig _mongodb._tcp.tha.ovfl8.mongodb.net SRV
    
    如果没有返回有效解析结果,说明服务器DNS无法识别SRV记录,需要更换DNS服务器:
    • 临时修改:编辑/etc/resolv.conf,添加或替换为:
      nameserver 8.8.8.8
      nameserver 1.1.1.1
      
    • 永久修改(针对Ubuntu 18.04+用netplan的情况):编辑/etc/netplan/00-installer-config.yaml,在nameservers下添加DNS地址,然后执行sudo netplan apply生效。

2. 切换为非SRV格式的连接字符串

MongoDB Atlas提供两种连接格式,SRV格式依赖DNS解析,若解析有问题,改用标准连接字符串:

  • 登录MongoDB Atlas控制台,进入对应集群的「Connect」→「Connect your application」
  • 选择「Standard connection string」,复制生成的连接地址
  • 替换代码中原有的SRV格式连接字符串,标准格式示例:
    mongodb://<username>:<password>@tha-shard-00-00.ovfl8.mongodb.net:27017,tha-shard-00-01.ovfl8.mongodb.net:27017,tha-shard-00-02.ovfl8.mongodb.net:27017/<dbname>?ssl=true&replicaSet=atlas-ovfl8-shard-0&authSource=admin&retryWrites=true&w=majority
    

3. 检查Node.js版本(若使用Node.js连接)

旧版本Node.js对SRV记录的支持不完善,确保Node.js版本≥12.x:

  • 查看当前版本:node -v
  • 若版本过低,用nvm升级(推荐方式):
    curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
    nvm install --lts
    

4. 检查服务器网络限制

  • 确认Ubuntu服务器的防火墙(ufw)允许DNS查询(UDP 53端口)和MongoDB出站连接(TCP 27017端口):
    sudo ufw allow out 53/udp
    sudo ufw allow out 27017/tcp
    
  • 同时检查云服务商的安全组规则,确保出站方向开放上述端口。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:50:28