使用systemctl
命令确认MongoDB服务是否正在运行,若未运行则尝试启动服务并设置开机自启:
sudo systemctl status mongod # 检查服务状态
sudo systemctl start mongod # 启动服务
sudo systemctl enable mongod # 设置开机自启
若服务启动失败,需进一步查看日志定位具体原因。
MongoDB的日志文件默认位于/var/log/mongodb/mongod.log
,通过tail
命令实时查看最新日志,或使用grep
过滤关键词(如“error”“failed”)快速定位问题:
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
)是否被占用。sudo systemctl restart mongod
```。
#### **4. 检查数据目录与权限**
MongoDB需要对其数据目录(如`/var/lib/mongodb`)具有读写权限。若目录不存在,需先创建并设置正确权限:
```bash
sudo mkdir -p /var/lib/mongodb # 创建数据目录
sudo chown -R mongodb:mongodb /var/lib/mongodb # 修改所有者
sudo chmod -R 755 /var/lib/mongodb # 设置权限
权限不足会导致服务无法启动或数据读写失败。
ufw
允许MongoDB默认端口(27017)的流量:sudo ufw allow 27017
netstat
或ss
命令确认27017端口未被其他进程占用:sudo netstat -tulnp | grep 27017 # 查看端口占用情况
sudo ss -tulnp | grep 27017
网络不通或端口被占用会导致客户端无法连接。
mongostat
mongotop
executionStats
模式):use your_database;
db.your_collection.find({field: "value"}).explain("executionStats");
这些工具可帮助快速定位性能瓶颈。
使用top
、htop
、df
等命令监控系统资源,确保有足够的内存、CPU和磁盘空间:
top # 查看CPU/内存使用
df -h # 查看磁盘空间
资源不足(如内存耗尽、磁盘空间满)会导致MongoDB性能下降甚至崩溃。
若无法连接MongoDB,需检查以下内容:
systemctl status mongod
);ufw allow 27017
);bindIp
是否正确(如远程访问需设置为0.0.0.0
);mongo
命令行工具测试连接(本地连接:mongo
;远程连接:mongo --host <IP> --port 27017
)。db.your_collection.createIndex({field: 1}); // 1表示升序索引
db.setProfilingLevel(1, 100); // 开启慢查询日志
db.system.profile.find().sort({millis: -1}).limit(10); // 查看最慢的10条查询
索引缺失或查询设计不合理会导致性能瓶颈。
若使用旧版本MongoDB(如低于6.0),可能存在已知bug。建议通过MongoDB官方仓库更新到最新稳定版本:
# 导入MongoDB官方GPG密钥
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
# 添加MongoDB仓库
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/debian bullseye/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
# 更新并安装
sudo apt-get update
sudo apt-get install -y mongodb-org
更新前需备份重要数据。