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

Node.js连接MongoDB遭遇MongoServerSelectionError错误求助

解决MongoServerSelectionError: connect ECONNREFUSED ::1:27017问题

核心原因分析

错误提示connect ECONNREFUSED ::1:27017说明Node.js程序无法连接到MongoDB服务,常见原因包括MongoDB未启动、IPv6解析冲突、端口被拦截或连接配置错误。

排查与解决步骤

  • 1. 确认MongoDB服务正在运行

    • Windows:打开「服务」面板,找到MongoDB服务,确保状态为「正在运行」;若未启动,右键选择「启动」,或执行命令:net start MongoDB
    • macOS(brew安装):执行brew services start mongodb-community启动服务
    • Linux:执行sudo systemctl start mongod启动服务,用sudo systemctl status mongod验证运行状态
  • 2. 修正连接配置,强制使用IPv4
    错误中出现::1(IPv6本地地址),说明Node.js优先尝试IPv6连接,但MongoDB可能未监听IPv6。启用family:4配置强制使用IPv4,同时改用async/await优化错误捕获:

    const mongoose = require("mongoose");
    const MongoUrl = "mongodb://localhost:27017";
    
    const mongoConnect = async () => {
      try {
        await mongoose.connect(MongoUrl, {
          useNewUrlParser: true,
          useUnifiedTopology: true,
          family: 4 // 强制使用IPv4,避免IPv6解析问题
        });
        console.log("Connected to MongoDB successfully");
      } catch (err) {
        console.error("MongoDB connection failed:", err);
      }
    };
    
    mongoConnect();
    
  • 3. 替换localhost为127.0.0.1
    若上述配置无效,将连接字符串改为mongodb://127.0.0.1:27017,直接指定IPv4本地地址,绕过localhost的DNS解析冲突。

  • 4. 验证端口与防火墙设置

    • 确认MongoDB默认端口27017未被其他程序占用,可执行netstat -ano | findstr :27017(Windows)或lsof -i :27017(macOS/Linux)检查端口占用
    • 确保本地防火墙、杀毒软件未拦截27017端口的入站/出站请求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 21:48:21