MongoDB 单机部署:从安装到优化的完整指南
MongoDB 作为一款流行的非关系型数据库(NoSQL),以其灵活的数据模型、高性能和可扩展性著称。对于开发测试环境或小型应用而言,单机部署 MongoDB 既简单又经济。本文将详细介绍如何在 Linux 系统上完成 MongoDB 的单机部署,包括安装、配置、启动及基础优化等关键步骤。
一、环境准备
1.1 系统要求
MongoDB 支持多种操作系统,包括 Linux、Windows 和 macOS。对于生产环境,推荐使用 Linux 系统(如 Ubuntu、CentOS),因其稳定性和性能更优。本文以 Ubuntu 20.04 LTS 为例。
- 硬件要求:至少 2GB RAM(生产环境建议 8GB+),足够的磁盘空间(根据数据量决定)。
- 软件依赖:确保系统已安装
curl、wget等基本工具,以及libcurl4、openssl等库。
1.2 安装前的检查
在安装前,建议更新系统包列表并安装必要的依赖:
sudo apt updatesudo apt install -y curl wget libcurl4 openssl
二、MongoDB 安装
2.1 添加 MongoDB 官方仓库
MongoDB 提供了官方的 APT 仓库,便于安装和管理。首先,导入 MongoDB 的 GPG 公钥:
wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -
然后,创建 /etc/apt/sources.list.d/mongodb-org-6.0.list 文件,添加 MongoDB 仓库:
echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu $(lsb_release -sc)/mongodb-org/6.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-6.0.list
2.2 安装 MongoDB
更新包列表后,安装 MongoDB 社区版:
sudo apt updatesudo apt install -y mongodb-org
安装完成后,MongoDB 服务会自动注册为系统服务,但默认不会启动。
三、配置 MongoDB
3.1 数据目录设置
MongoDB 默认将数据存储在 /var/lib/mongodb,日志文件在 /var/log/mongodb。如需自定义路径,编辑 MongoDB 的配置文件 /etc/mongod.conf:
storage:dbPath: /data/mongodb # 自定义数据目录journal:enabled: truesystemLog:destination: filepath: /var/log/mongodb/mongod.log # 日志文件路径logAppend: true
确保数据目录存在且 MongoDB 用户有读写权限:
sudo mkdir -p /data/mongodbsudo chown -R mongodb:mongodb /data/mongodb
3.2 绑定 IP 和端口
默认情况下,MongoDB 只监听本地回环地址(127.0.0.1)。如需远程访问,需修改 net 部分:
net:port: 27017bindIp: 0.0.0.0 # 允许所有IP访问,生产环境应限制为特定IP
安全警告:开放所有 IP 访问存在安全风险,生产环境应通过防火墙或网络配置限制访问来源。
3.3 启用认证
为增强安全性,建议启用 MongoDB 的认证机制。在 /etc/mongod.conf 中添加:
security:authorization: enabled
然后,重启 MongoDB 服务并创建管理员用户:
sudo systemctl restart mongodmongo --host 127.0.0.1# 在MongoDB shell中执行use admindb.createUser({user: "admin",pwd: "your_secure_password",roles: ["root"]})exit
之后,连接时需提供用户名和密码:
mongo --host 127.0.0.1 -u admin -p your_secure_password --authenticationDatabase admin
四、启动与管理 MongoDB
4.1 启动与停止
使用 systemctl 命令管理 MongoDB 服务:
sudo systemctl start mongod # 启动sudo systemctl stop mongod # 停止sudo systemctl restart mongod # 重启sudo systemctl status mongod # 查看状态
4.2 日志查看
MongoDB 的日志文件默认位于 /var/log/mongodb/mongod.log,可通过以下命令查看:
tail -f /var/log/mongodb/mongod.log
五、性能优化
5.1 调整内存配置
MongoDB 依赖内存进行数据缓存。对于大型数据集,可适当增加 wiredTigerCacheSizeGB(WiredTiger 存储引擎的缓存大小):
storage:wiredTiger:engineConfig:cacheSizeGB: 2 # 根据可用内存调整
5.2 索引优化
合理创建索引可显著提升查询性能。使用 explain() 分析查询计划:
db.collection.find({field: "value"}).explain("executionStats")
根据结果创建或优化索引:
db.collection.createIndex({field: 1}) # 1表示升序,-1表示降序
5.3 定期维护
- 日志轮转:配置
logrotate定期清理旧日志。 - 数据备份:使用
mongodump和mongorestore工具定期备份数据。
mongodump --host 127.0.0.1 --db your_db --out /backup/pathmongorestore --host 127.0.0.1 --db your_db /backup/path/your_db
六、总结
MongoDB 单机部署适用于开发测试和小型应用,其安装与配置过程相对简单。通过合理配置数据目录、网络访问、安全认证及性能参数,可以构建一个稳定高效的 MongoDB 数据库环境。然而,对于生产环境,还需考虑高可用性、数据分片及更严格的安全措施。希望本文能为开发者提供实用的指导,助力快速上手 MongoDB。