使用systemctl命令确认MongoDB服务是否处于运行状态,若未运行可尝试启动服务并设置开机自启:
sudo systemctl status mongod # 查看服务状态 sudo systemctl start mongod # 启动服务 sudo systemctl enable mongod # 设置开机自启 MongoDB的默认日志路径为/var/log/mongodb/mongod.log,通过tail命令实时查看最新日志,快速定位错误信息:
sudo tail -f /var/log/mongodb/mongod.log # 实时查看日志 sudo grep "ERROR" /var/log/mongodb/mongod.log # 筛选错误日志 MongoDB的主配置文件为/etc/mongod.conf,需重点检查以下关键配置项:
storage.dbPath:数据存储目录(如/var/lib/mongodb)是否存在;systemLog.path:日志文件路径是否可写;net.bindIp:绑定的IP地址(127.0.0.1仅本地访问,0.0.0.0允许远程访问);net.port:监听端口(默认27017)是否被占用。mongod --config /etc/mongod.conf --eval "printjson({ok: 1})" /etc/mongod.conf,例如缺少引号、括号不匹配等;mongodb)对数据目录有读写权限:sudo mkdir -p /var/lib/mongodb # 创建数据目录(若不存在) sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有权 sudo chmod -R 755 /var/lib/mongodb # 设置权限 netstat命令检查27017端口是否被其他进程占用,若有则停止占用进程或修改MongoDB端口:sudo netstat -tulnp | grep 27017 # 查看端口占用情况 libssl1.1缺失),可通过以下命令安装依赖:sudo apt-get update sudo apt-get install -y libssl1.1 # 安装缺失的依赖库 sudo ldconfig # 更新动态链接库缓存 systemctl status mongod确认服务状态,未启动则执行start命令;ufw防火墙,需允许MongoDB端口(默认27017):sudo ufw allow 27017/tcp # 允许TCP端口 sudo ufw reload # 重新加载防火墙规则 net.bindIp设置为127.0.0.1,则只能本地连接,需修改为0.0.0.0(允许远程访问)或指定远程IP。mongostat(监控操作频率)和mongotop(监控读写耗时)实时查看性能指标:mongostat # 监控操作频率 mongotop # 监控读写耗时 /etc/mongod.conf中设置operationProfiling.slowOpThresholdMs,如100毫秒),并通过explain()命令分析查询计划:use your_database # 切换数据库 db.your_collection.find().explain("executionStats") # 分析查询计划 db.your_collection.createIndex({field_name: 1}) # 创建升序索引 rs.status()命令查看成员状态,确保多数节点正常运行;db.collection.validate()命令检查集合中文档的格式是否正确,例如字段是否存在、数据类型是否匹配;use local db.oplog.rs.find().sort({$natural: -1}).limit(10) # 查看最近的oplog记录 使用top(CPU/内存使用率)、df -h(磁盘空间)、iotop(磁盘I/O)等命令监控系统资源,确保MongoDB有足够的资源运行:
top # 查看CPU/内存使用率 df -h # 查看磁盘空间 sudo apt-get install iotop # 安装iotop(监控磁盘I/O) iotop # 查看磁盘I/O 若使用旧版本MongoDB(如4.x),可能存在已知问题,建议升级到最新稳定版(如6.x):
sudo apt-get update sudo apt-get install --only-upgrade mongodb-org # 升级MongoDB 升级前需备份数据,避免升级失败导致数据丢失。
若以上步骤无法解决问题,可通过以下途径寻求帮助: