在 CentOS 上配置 MongoDB 出现报错,一般可以从日志、配置文件、权限、端口、SELinux/防火墙几个方面排查。下面给你一套实用排查思路:
MongoDB 默认日志位置:
/var/log/mongodb/mongod.log
或
/var/log/mongo/mongod.log
查看最近报错:
tail -n 100 /var/log/mongodb/mongod.log
常见关键词:
Permission denied → 权限问题Address already in use → 端口被占用Cannot open → 数据目录问题Failed to unlink socket file → 残留 socket 文件CentOS 通常使用:
/etc/mongod.conf
检查重点:
storage:
dbPath: /var/lib/mongo
systemLog:
path: /var/log/mongodb/mongod.log
net:
port: 27017
bindIp: 127.0.0.1
验证配置是否合法:
mongod --config /etc/mongod.conf --check
MongoDB 默认用户是 mongod:
ls -ld /var/lib/mongo
ls -ld /var/log/mongodb
修复权限:
chown -R mongod:mongod /var/lib/mongo
chown -R mongod:mongod /var/log/mongodb
查看端口:
ss -lntp | grep 27017
如果已有进程:
ps aux | grep mongod
杀掉冲突进程:
kill -9 <pid>
查看 SELinux 状态:
getenforce
临时关闭测试:
setenforce 0
如果关闭后能启动,说明是 SELinux 限制:
semanage port -a -t mongod_port_t -p tcp 27017
或修改策略(推荐)
CentOS 7+:
firewall-cmd --list-ports
firewall-cmd --add-port=27017/tcp --permanent
firewall-cmd --reload
systemctl status mongod
journalctl -xe
| 报错 | 原因 |
|---|---|
| Permission denied | 权限不对 |
| bindIp 错误 | 配置写错 |
| 启动慢 | 数据大 / 磁盘慢 |
| 无法远程连接 | bindIp 只绑本地 |
如果你愿意,可以把具体报错信息或 mongod.log 片段贴出来,我可以直接帮你定位是哪一类问题。