MongoDB 单机部署全攻略:从安装到优化的实践指南
一、引言:单机部署的适用场景与价值
MongoDB作为非关系型数据库的代表,以其灵活的文档模型、水平扩展能力和高性能著称。单机部署适用于开发测试环境、小型应用或对高可用性要求不高的场景,能够以最低成本快速验证业务逻辑。相比集群部署,单机模式无需处理分片、副本集等复杂配置,但需注意数据安全与备份策略。本文将系统讲解MongoDB单机部署的核心步骤,帮助开发者高效完成环境搭建。
二、环境准备:系统与软件要求
1. 操作系统兼容性
MongoDB支持Linux(Ubuntu/CentOS)、Windows和macOS,但生产环境推荐使用Linux(如Ubuntu 20.04 LTS)。Linux系统对资源控制更精细,且社区支持更完善。例如,Ubuntu可通过apt包管理器快速安装依赖库,而Windows需手动配置环境变量。
2. 硬件配置建议
- 内存:至少4GB(开发环境),生产环境建议16GB+以支持大容量数据操作。
- 磁盘:SSD优于HDD,尤其是写密集型场景。MongoDB默认将数据存储在
/data/db目录,需确保磁盘空间充足。 - CPU:多核处理器可提升并发查询性能,但单机模式下核心数影响有限。
3. 软件依赖
- 依赖库:Linux需安装
libcurl4、openssl等(通过sudo apt install命令)。 - 版本选择:推荐使用LTS版本(如MongoDB 6.0),避免使用Beta版可能存在的稳定性问题。
三、安装与配置:分步详解
1. 下载与安装
Linux(Ubuntu)示例:
# 导入公钥wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -# 添加源echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list# 安装sudo apt updatesudo apt install -y mongodb-org
Windows/macOS:
- 从官网下载
.msi(Windows)或.tgz(macOS)安装包,按向导完成安装。
2. 启动与停止服务
- Linux:
sudo systemctl start mongod # 启动sudo systemctl status mongod # 检查状态sudo systemctl stop mongod # 停止
- Windows:通过服务管理器或命令行
net start MongoDB启动。
3. 基础配置
修改/etc/mongod.conf(Linux)或mongod.cfg(Windows)文件:
# 关键配置项storage:dbPath: /var/lib/mongodb # 数据存储路径journal:enabled: true # 启用日志,保障数据安全net:bindIp: 0.0.0.0 # 允许所有IP访问(生产环境需限制)port: 27017 # 默认端口security:authorization: disabled # 开发环境可暂禁用认证
四、基础操作:连接与CRUD
1. 连接数据库
mongosh # 启动MongoDB Shell# 或指定主机和端口mongosh --host 127.0.0.1 --port 27017
2. 创建数据库与集合
use mydb; // 创建/切换数据库db.createCollection("users"); // 创建集合
3. 插入与查询数据
db.users.insertOne({name: "Alice", age: 25}); // 插入单条db.users.find({age: {$gt: 20}}); // 查询年龄>20的用户
五、性能优化与安全加固
1. 索引优化
// 为name字段创建升序索引db.users.createIndex({name: 1});// 查看索引db.users.getIndexes();
索引可显著提升查询速度,但需权衡写入性能。
2. 内存配置
在mongod.conf中调整:
operationProfiling:mode: slowOp # 记录慢查询(阈值通过slowOpThresholdMs设置)
3. 安全策略
- 启用认证:
security:authorization: enabled
创建管理员用户:
use admin;db.createUser({user: "admin", pwd: "password", roles: ["root"]});
- 防火墙规则:仅允许可信IP访问27017端口。
六、备份与恢复
1. 逻辑备份(mongodump)
mongodump --host 127.0.0.1 --db mydb --out /backup/
2. 物理备份(文件拷贝)
直接复制dbPath目录下的文件,需确保MongoDB服务已停止。
3. 恢复数据(mongorestore)
mongorestore --host 127.0.0.1 --db mydb /backup/mydb/
七、常见问题与解决方案
- 端口冲突:检查27017端口是否被占用(
netstat -tulnp | grep 27017)。 - 权限不足:确保运行用户对
dbPath有读写权限(chown -R mongodb:mongodb /var/lib/mongodb)。 - 启动失败:查看日志(
journalctl -u mongod)定位错误。
八、总结与扩展建议
MongoDB单机部署是快速验证业务的理想选择,但需注意:
- 数据安全:定期备份,生产环境启用认证。
- 性能监控:使用
mongostat和mongotop工具跟踪数据库活动。 - 扩展规划:当数据量或并发量增长时,考虑迁移至副本集或分片集群。
通过本文的指导,开发者可高效完成MongoDB单机部署,并为后续的集群化升级奠定基础。