1. 安装MongoDB
根据Linux发行版选择包管理器安装(如Ubuntu/Debian用apt,CentOS/RHEL用yum),或手动下载TGZ包编译安装。推荐使用官方仓库确保版本安全:
sudo apt update
sudo apt install -y mongodb-org # 安装社区版
mongodb-linux-x86_64-ubuntu1604-4.2.8.tgz),解压后移动至/usr/local/mongodb,并添加环境变量(export PATH=/usr/local/mongodb/bin:$PATH)。2. 创建数据与日志目录
MongoDB需专用目录存储数据与日志,通常设置在/var/lib/mongodb(数据)和/var/log/mongodb(日志),并赋予mongodb用户所有权:
sudo mkdir -p /var/lib/mongodb /var/log/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb # 确保进程有读写权限
3. 配置MongoDB参数
编辑核心配置文件/etc/mongod.conf(若不存在则创建),设置关键参数:
storage:
dbPath: /var/lib/mongodb # 数据存储路径
journal:
enabled: true # 启用预写日志(WAL),确保数据持久性
systemLog:
destination: file # 日志输出到文件
path: /var/log/mongodb/mongod.log # 日志文件路径
logAppend: true # 追加模式,避免日志覆盖
net:
port: 27017 # 监听端口(默认27017)
bindIp: 0.0.0.0 # 绑定IP(0.0.0.0允许远程访问,生产环境建议限制为特定IP)
security:
authorization: enabled # 开启用户权限验证
4. 启动与设置开机自启
使用systemctl管理MongoDB服务,确保服务稳定运行:
sudo systemctl start mongod # 启动服务
sudo systemctl enable mongod # 设置开机自启
sudo systemctl status mongod # 验证服务状态(显示"active (running)"即为成功)
5. 安全加固
admin数据库创建具备管理权限的用户:mongo
use admin
db.createUser({
user: "admin",
pwd: "yourStrongPassword", // 使用强密码
roles: [{ role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase"]
})
sudo ufw allow 27017/tcp # Ubuntu(ufw)
sudo firewall-cmd --permanent --add-port=27017/tcp # CentOS(firewalld)
sudo firewall-cmd --reload
6. 性能优化
ulimit -n 64000 # 增加文件描述符限制(默认1024可能不足)
echo "vm.dirty_background_ratio = 10" >> /etc/sysctl.conf # 调整脏页刷新阈值
echo "vm.dirty_ratio = 20" >> /etc/sysctl.conf
sysctl -p # 应用配置
storage:
wiredTiger:
engineConfig:
cacheSizeGB: 4 # 分配4GB内存给WiredTiger缓存(根据服务器内存调整)
operationProfiling:
mode: slowOp # 开启慢查询分析(记录执行时间超过100ms的操作)
slowOpThresholdMs: 100
7. 验证配置
sudo systemctl status mongod确认服务运行正常。mongo命令连接,验证认证功能(启用认证后需输入用户名密码):mongo -u admin -p --authenticationDatabase admin
tail -f /var/log/mongodb/mongod.log确认无报错信息。