sudo systemctl status mongod查看服务详情,确认错误原因(如配置文件错误、端口占用等)。mongod --config /etc/mongod.conf --eval检查YAML格式是否正确(注意缩进、冒号后空格)。sudo tail -f /var/log/mongodb/mongod.log获取详细错误日志(如数据目录权限问题、磁盘空间不足)。sudo chown -R mongodb:mongodb /var/lib/mongodb(默认数据目录)并重试。/var/lib/mongodb)有读写权限,执行sudo chown -R mongodb:mongodb /var/lib/mongodb;若使用自定义目录(如/data/db),需同步修改权限。chmod -R 777(完全开放权限),建议保留755或750权限,仅授予必要用户访问权。/etc/mongod.conf中的以下参数是否正确:
storage.dbPath:数据存储路径(需存在且可写);systemLog.path:日志文件路径(需有写入权限);net.bindIp:监听IP(127.0.0.1仅本地访问,0.0.0.0允许远程访问,根据需求调整);net.port:端口号(默认27017,避免与其他服务冲突)。sudo systemctl restart mongod使变更生效。/etc/mongod.conf中的net.bindIp包含远程IP或0.0.0.0(如bindIp: 0.0.0.0),修改后重启服务。sudo ufw allow 27017允许MongoDB默认端口通过防火墙(若使用其他端口,替换为对应数值)。ping <Ubuntu服务器IP>确认网络可达,再执行telnet <IP> 27017测试端口是否开放。/var/lib/mongodb)不存在,执行sudo mkdir -p /var/lib/mongodb创建。/data/db),需在/etc/mongod.conf中修改storage.dbPath为该路径,并确保目录权限正确(sudo chown -R mongodb:mongodb /data/db)。/var/lib/mongodb1),修正后重启服务。sudo netstat -tulnp | grep 27017(或替换为目标端口),查看占用进程ID(PID)。sudo kill -9 <PID>终止进程;若为必要服务,修改MongoDB配置文件中的net.port为其他端口(如27018),并重启服务。/etc/mongod.conf的systemLog部分添加logRotate: rename(默认值),并设置logAppend: true(追加日志而非覆盖)。sudo journalctl --vacuum-time=1w清理1周前的系统日志,或手动删除/var/log/mongodb/mongod.log(重启服务后会生成新日志)。/etc/mongod.conf的security部分添加authorization: enabled,修改后重启服务。mongo),执行以下命令创建管理员账号(需替换<username>和<password>):use admin;
db.createUser({user: "<username>", pwd: "<password>", roles: ["root"]});
mongo -u <username> -p <password> --authenticationDatabase admin命令。以上是Ubuntu配置MongoDB时的常见问题及解决方法,若问题仍未解决,建议查看MongoDB官方文档或社区论坛(如Stack Overflow)获取更详细的帮助。