MongoDB无法连接127.0.0.1:27017且mongod服务启动失败求助
MongoDB服务启动失败(状态码14)及连接拒绝问题排查与解决
问题现象
- 执行
mongo命令返回连接拒绝错误:
MongoDB shell version v5.0.13 connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed: SocketException: Error connecting to 127.0.0.1:27017 :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:372:17 @(connect):2:6 exception: connect failed exiting with code 1
- 执行
mongosh命令返回:
Current Mongosh Log ID: 6341cd406845432d371fc4b3 Connecting to: mongodb://127.0.0.1:27017/?directConnection=true&serverSelectionTimeoutMS=2000&appName=mongosh+1.6.0 MongoNetworkError: connect ECONNREFUSED 127.0.0.1:27017
- MongoDB Campus提示
connect ECONNREFUSED 127.0.0.1:27017 sudo systemctl status mongod显示服务启动失败,退出状态码14:
root@jahid:/home/jahid# sudo systemctl status mongod ● mongod.service - MongoDB Database Server Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Sun 2022-10-09 12:48:22 +06; 9min ago Docs: https://docs.mongodb.org/manual Main PID: 28523 (code=exited, status=14) Oct 09 12:48:21 jahid systemd[1]: Started MongoDB Database Server. Oct 09 12:48:22 jahid systemd[1]: mongod.service: Main process exited, code=exited, status=14/n/a Oct 09 12:48:22 jahid systemd[1]: mongod.service: Failed with result 'exit-code'.
排查与解决步骤
1. 修复数据目录权限
状态码14大多与文件/目录权限异常相关,需确保MongoDB进程对数据目录拥有读写权限:
- 查看默认数据目录权限:
ls -ld /var/lib/mongodb - 若目录所属用户/组不是
mongodb:mongodb,执行权限修正:
sudo chown -R mongodb:mongodb /var/lib/mongodb sudo chmod -R 755 /var/lib/mongodb
2. 查看日志定位具体错误
通过日志获取更详细的失败原因:
sudo tail -n 50 /var/log/mongodb/mongod.log
常见问题及处理:
- 数据文件损坏:日志提示损坏时,先备份数据再执行修复:
sudo mongod --repair --dbpath /var/lib/mongodb
- 端口被占用:检查27017端口是否被其他进程占用:
sudo lsof -i :27017
若有占用,停止对应进程或修改/etc/mongod.conf中的port参数更换端口。
3. 验证配置文件正确性
检查/etc/mongod.conf关键配置项:
- 确认
storage.dbPath指向存在且权限正确的目录 - 确认
net.bindIp设置符合需求(本地连接可设为127.0.0.1) - 检查配置文件是否存在语法错误
4. 重启服务并验证
完成上述操作后重启服务:
sudo systemctl restart mongod
检查服务状态:
sudo systemctl status mongod
服务正常运行后,尝试连接验证:
mongosh
内容的提问来源于stack exchange,提问作者MD Jahid Hasan
相关产品推荐
相关产品推荐

