Ubuntu20.04终端执行mongo命令报错 无法连接本地27017端口Mongo服务
Ubuntu 20.04 MongoDB 4.4.3 连接报错 Connection refused 解决方案
报错核心逻辑:该错误并非Mongo Shell本身故障,本质是MongoDB服务端进程未正常运行,27017端口无监听进程导致连接被拒绝。
第一步:检查并启动MongoDB服务
- 先查询服务运行状态,根据安装源匹配对应服务名执行:
官方MongoDB软件源安装版本执行:sudo systemctl status mongod
Ubuntu官方apt源安装的Mongo版本执行:sudo systemctl status mongodb - 若输出显示服务状态为
inactive (dead)或failed,执行对应启动命令:
官方源版本:sudo systemctl start mongod
Ubuntu apt源版本:sudo systemctl start mongodb - 如需设置Mongo服务开机自启,执行对应命令即可:
sudo systemctl enable mongod(替换为实际使用的服务名)
第二步:服务启动失败时排查根因
如果启动命令执行后服务仍无法正常运行,查看默认日志定位问题,默认日志路径为/var/log/mongodb/mongod.log,执行以下命令查看最近50条报错:sudo tail -n 50 /var/log/mongodb/mongod.log
Ubuntu 20.04环境下常见启动失败原因及修复方案:
- 数据/日志目录权限异常
默认MongoDB数据目录为/var/lib/mongodb、日志目录为/var/log/mongodb,若之前手动修改过目录所有者或权限,会导致Mongo进程无法写入文件启动失败,执行以下命令修复权限:sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb
修复后重新启动Mongo服务即可。 - 非正常关机残留进程锁文件
若日志提示Unable to acquire lock for lockfilepath: /var/lib/mongodb/mongod.lock,说明异常关机后残留了进程锁文件,按以下步骤清理:- 停止未正常运行的服务:
sudo systemctl stop mongod(替换为实际服务名) - 删除锁文件:
sudo rm /var/lib/mongodb/mongod.lock - 重新启动Mongo服务
- 停止未正常运行的服务:
- 端口被其他进程占用
若日志提示addr already in use类报错,执行以下命令查询27017端口的占用进程:sudo ss -tulpn | grep 27017
可选择停止占用该端口的其他进程,或修改MongoDB配置文件/etc/mongod.conf中net.port字段为其他未被占用的端口(如27018),修改后重启服务即可。
第三步:验证连接
服务正常启动后,先执行以下命令确认端口已正常监听:sudo ss -tulpn | grep 27017
若输出中显示mongod进程已绑定127.0.0.1:27017,直接重新执行mongo命令即可正常连接。
内容的提问来源于stack exchange,提问作者codemaster9090
相关产品推荐
相关产品推荐

