使用systemctl命令检查MongoDB服务是否正在运行,这是快速定位服务异常的第一步:
sudo systemctl status mongod
若服务未运行,会显示“inactive (dead)”状态,需进一步排查启动失败原因;若服务运行中,状态会显示“active (running)”。
MongoDB的日志文件记录了详细的启动、运行及错误信息,是故障排查的核心依据。默认日志路径为/var/log/mongodb/mongod.log,可通过以下命令查看最新日志:
sudo tail -n 100 /var/log/mongodb/mongod.log
重点关注日志中的“ERROR”“FAILED”等关键字,如“Permission denied”“Address already in use”等,可直接定位问题类型。
MongoDB的主配置文件为/etc/mongod.conf,配置错误(如路径错误、参数无效)会导致服务无法启动。需检查以下关键配置项:
storage.dbPath(如/var/lib/mongodb),确保路径存在且可访问;systemLog.path(如/var/log/mongodb/mongod.log),确保有写入权限;net.port(默认27017),避免与其他服务冲突;net.bindIp(如127.0.0.1或0.0.0.0),远程连接需设置为0.0.0.0。sudo systemctl restart mongod
MongoDB需要对其数据目录(storage.dbPath指定的路径)有读写权限,若权限不足会导致启动失败。需确保:
/var/lib/mongodb);mongodb用户(MongoDB默认运行用户):sudo chown -R mongodb:mongodb /var/lib/mongodb
0755):sudo chmod -R 0755 /var/lib/mongodb
MongoDB默认使用27017端口,若该端口被其他进程占用,服务将无法启动。可通过以下命令检查端口占用情况:
sudo lsof -i :27017
若端口被占用,会显示占用进程的PID,可通过kill命令终止该进程(需确认进程无用):
sudo kill <PID>
终止进程后,重启MongoDB服务即可。
sudo apt update
sudo apt install mongodb-org
mongod命令测试配置文件有效性:sudo mongod --config /etc/mongod.conf --fork --logpath /tmp/mongod_test.log
若配置错误,日志会显示具体错误信息,根据提示修改mongod.conf。sudo systemctl stop mongod
sudo mongod --repair --dbpath /var/lib/mongodb
sudo systemctl start mongod
修复前建议备份数据目录(如cp -r /var/lib/mongodb /var/lib/mongodb_backup)。systemctl status mongod确认服务状态,未运行则启动服务;net.bindIp为127.0.0.1(仅本地访问),远程连接会被拒绝,需修改为0.0.0.0并重启服务;ufw防火墙,需允许MongoDB端口(默认27017):sudo ufw allow 27017
security.authorization: enabled),连接时需提供正确的用户名和密码:mongo -u <username> -p <password> --authenticationDatabase admin
mongodb用户(参考“数据目录与权限”部分);sudo运行MongoDB命令,需避免权限过高导致的安全问题,建议以mongodb用户运行:sudo -u mongodb mongod --config /etc/mongod.conf
df -h /var/lib/mongodb
若磁盘使用率超过80%,需清理空间:
/var/log/syslog、/var/log/mongodb/mongod.log);apt缓存:sudo apt clean
bindIp设置为无效IP(如192.168.1.100但该IP未绑定到服务器);/etc/mongod.conf,将bindIp设置为有效IP(如127.0.0.1或服务器公网IP),或0.0.0.0(允许所有IP连接);mongod --config /etc/mongod.conf --fork --logpath /tmp/mongod_test.log测试配置有效性,无误后重启服务。