Ubuntu 20.04.3 LTS启动MongoDB后mongosh报ECONNREFUSED错误如何解决
MongoDB 连接失败排查解决方案
首先明确一个基础认知:sudo systemctl start mongod 是后台启动MongoDB服务的命令,执行完成后默认返回系统终端是正常现象,进入MongoDB终端确实需要单独执行mongosh命令,你这步操作逻辑没有问题。
针对MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017报错,按照以下顺序排查即可:
- 第一步:确认MongoDB服务是否启动成功
执行命令:
若返回结果中状态为active (running)则服务正常,若为failed或inactive则服务启动失败,继续后续排查。sudo systemctl status mongod - 第二步:修复数据目录与日志目录权限
MongoDB默认要求/var/lib/mongodb(数据目录)、/var/log/mongodb(日志目录)的所有者为mongodb用户,权限异常会导致服务启动失败,执行以下命令修复权限后重启服务:sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb sudo systemctl restart mongod - 第三步:核对MongoDB配置参数
打开配置文件/etc/mongod.conf,检查net配置段下的两个参数:bindIp需配置为127.0.0.1(本地访问场景)port需配置为27017
调整配置后需重启服务生效。
- 第四步:排查端口占用冲突
若之前有未正常关闭的MongoDB残留进程,会占用27017端口导致新服务无法启动,执行命令查看端口占用:
若有对应进程,执行sudo lsof -i :27017kill -9 进程ID杀掉残留进程后重启MongoDB服务即可。 - 第五步:排查本地防火墙规则
若服务已显示正常运行仍无法连接,检查Ubuntu默认防火墙是否拦截27017端口:
若防火墙为开启状态,执行命令放行本地27017端口:sudo ufw statussudo ufw allow from 127.0.0.1 to any port 27017
完成以上排查后再次执行mongosh即可正常进入MongoDB终端。
内容的提问来源于stack exchange,提问作者GaboRenovation
相关产品推荐
相关产品推荐

