M1 Pro Monterey 12.0.1下MongoDB启动失败、VS Code无法连接问题求助
问题1:brew启动MongoDB Community 5.0立即报错解决方法
- 修复权限:系统更新通常会重置Homebrew相关目录的权限,执行命令:
sudo chown -R $(whoami) /opt/homebrew/var/mongodb /opt/homebrew/var/log/mongodb
- 手动启动排查错误:跳过brew services直接启动MongoDB查看具体报错信息:
mongod --config /opt/homebrew/etc/mongod.conf
如果输出提示端口被占用,执行sudo lsof -i :27017查询占用27017端口的进程,杀掉对应进程后重新启动即可。
- 适配Monterey安全策略:M1芯片设备会默认阻止未经过公证的程序运行,先到「系统设置>隐私与安全性」,找到mongod运行被阻止的提示,点击「仍要允许」;如果没有对应提示,执行命令解除隔离属性:
sudo xattr -d com.apple.quarantine /opt/homebrew/Cellar/mongodb-community@5.0/*/bin/mongod
问题2:MongoDB正常运行但Node服务报连接错误解决方法
你遇到的ECONNREFUSED ::1:27017报错是因为Node.js默认优先将localhost解析为IPv6地址::1,但MongoDB默认只监听IPv4的127.0.0.1地址,Compass默认兼容两种解析逻辑所以可以正常连接。两种方案二选一即可:
- 改连接地址:将mongoose.connect的连接地址从localhost改为
mongodb://127.0.0.1:27017/你的数据库名,强制走IPv4解析,无需修改其他配置。 - 改MongoDB监听配置:打开
/opt/homebrew/etc/mongod.conf文件,找到net配置段,将bindIp修改为同时兼容IPv4和IPv6的配置:
net: bindIp: 127.0.0.1, ::1 port: 27017
修改后重启MongoDB服务即可。
- 额外排查:如果修改后仍报错,检查VS Code终端是否开启了全局代理,本地请求被代理转发导致连接失败,临时关闭终端代理后重新执行
npm run dev测试即可。
内容的提问来源于stack exchange,提问作者Mustafa
相关产品推荐
相关产品推荐

