MongooseServerSelectionError是什么?MEAN栈连接MongoDB报错如何解决?
报错根因
MongooseServerSelectionError: connect ECONNREFUSED 127.0.0.1:27017 是Node应用无法和本地27017端口的MongoDB服务建立连接导致的,和你写的代码逻辑无关,都是环境侧的问题,对应解决方法如下:
对应解决方案
- 问题1:MongoDB服务未启动(90%以上都是这个原因)
不同操作系统启动方式如下:- Windows:以管理员权限打开命令提示符,执行
net start MongoDB;或者打开服务管理器,找到MongoDB对应服务右键点击启动 - Mac:如果你是brew安装的MongoDB 5.0版本,终端执行
brew services start mongodb-community@5.0;如果是手动安装的,执行mongod --config /usr/local/etc/mongod.conf - Linux:终端执行
sudo systemctl start mongod
- Windows:以管理员权限打开命令提示符,执行
- 问题2:MongoDB端口不是默认27017
打开MongoDB配置文件mongod.conf,找到port配置项确认实际监听端口,把代码中uri的27017替换为实际端口即可 - 问题3:MongoDB限制了访问IP
打开mongod.conf找到bindIp配置,修改为127.0.0.1(仅允许本地访问)或者0.0.0.0(允许所有IP访问,仅本地测试使用,生产环境禁止该配置),修改完成后重启MongoDB服务生效 - 问题4:未初始化MongoDB数据目录
Mac/Linux环境下首次运行MongoDB需要手动创建数据目录,终端依次执行:
再启动MongoDB服务即可。sudo mkdir -p /data/db sudo chown -R $USER /data/db
验证方法
完成上述操作后,终端直接执行mongosh或者mongo命令,如果能正常进入MongoDB命令行,再运行你的node mongoose.js代码即可连接成功。
内容的提问来源于stack exchange,提问作者bcstryker
相关产品推荐
相关产品推荐

