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

MongoServerSelectionError连接求助:ECONNREFUSED ::1:27017

排查MongoServerSelectionError: connect ECONNREFUSED ::1:27017问题

以下是分步排查方案:

1. 确认MongoDB服务的监听地址

先检查MongoDB实际在哪个IP上监听27017端口:

# 用lsof查看(需先安装:sudo apt install lsof / brew install lsof)
lsof -i :27017

# 或者用netstat
netstat -an | grep 27017

如果输出仅显示127.0.0.1:27017,说明服务只监听IPv4,而应用使用localhost时可能解析到IPv6的::1,导致连接被拒绝。

2. 调整MongoDB的绑定IP配置

找到MongoDB配置文件(常见路径:/etc/mongod.conf、~/mongodb/bin/mongod.conf),修改net段的bindIp:

net:
  port: 27017
  bindIp: 127.0.0.1,::1  # 同时监听IPv4和IPv6

修改后重启服务:

# systemd管理的系统
sudo systemctl restart mongod

# 手动启动场景
sudo mongod --config /path/to/mongod.conf --shutdown
sudo mongod --config /path/to/mongod.conf

3. 强制应用使用IPv4连接

若不想修改MongoDB配置,直接调整连接字符串:

  • 改用IPv4地址:
    const dbUrl = 'mongodb://127.0.0.1:27017/macro-tickets';
    
  • 或者添加family=4参数强制驱动使用IPv4:
    const dbUrl = 'mongodb://localhost:27017/macro-tickets?family=4';
    

4. 验证MongoDB服务是否正常运行

  • 检查进程是否存在:
    ps aux | grep mongod
    
  • 若用sudo mongod启动,默认使用/data/db目录,检查该目录权限:
    ls -ld /data/db
    
    权限不足时修复:
    sudo chown -R mongodb:mongodb /data/db
    
  • 查看启动日志排查报错(常见路径:/var/log/mongodb/mongod.log):
    tail -20 /var/log/mongodb/mongod.log
    

5. 检查localhost解析配置

打开/etc/hosts文件,查看localhost的解析规则:

127.0.0.1   localhost
::1         localhost

若同时存在IPv6解析且MongoDB未监听::1,可临时注释::1 localhost行,或按步骤3强制应用使用IPv4连接。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 20:49:57