news 2026/10/31 2:46:51

CentOS 7下MongoDB 4.4安装与配置指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
CentOS 7下MongoDB 4.4安装与配置指南

1. CentOS 7环境下MongoDB安装全指南

作为一款流行的NoSQL数据库,MongoDB在Web应用和大数据处理领域有着广泛应用。最近在部署一个数据分析项目时,我需要在CentOS 7服务器上配置MongoDB 4.4版本。虽然官方文档提供了基本指引,但在实际安装过程中还是遇到了不少需要特别注意的细节。下面就把完整的安装过程和踩坑经验分享给大家。

提示:本文基于CentOS 7.9最小化安装环境,所有操作都需要root权限或sudo执行。建议先使用yum update更新系统到最新状态。

1.1 环境准备与依赖检查

在开始安装前,我们需要确保系统满足MongoDB的基本要求:

# 检查系统版本 cat /etc/redhat-release # 检查内存(建议至少2GB) free -h # 检查存储空间(建议至少10GB) df -h

MongoDB官方提供了两种安装方式:通过配置yum仓库安装和直接下载rpm包安装。我推荐使用第一种方式,因为这样更方便后续的版本升级和管理。

2. 通过Yum仓库安装MongoDB

2.1 配置MongoDB官方仓库

首先创建MongoDB的repo文件:

vi /etc/yum.repos.d/mongodb-org-4.4.repo

添加以下内容(以4.4版本为例):

[mongodb-org-4.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.4.asc

保存后执行仓库更新:

yum makecache

2.2 安装MongoDB服务

执行安装命令:

yum install -y mongodb-org

这个命令会安装以下组件:

  • mongodb-org-server:核心服务程序
  • mongodb-org-mongos:分片路由服务
  • mongodb-org-shell:命令行客户端
  • mongodb-org-tools:包括mongodump等工具

注意:不要单独安装某个组件,这样可能导致版本不兼容。官方建议始终安装mongodb-org元数据包。

3. MongoDB基础配置

3.1 目录结构与权限设置

MongoDB默认使用以下目录:

  • 数据目录:/var/lib/mongo
  • 日志目录:/var/log/mongodb

我们需要确保这些目录存在且权限正确:

mkdir -p /var/lib/mongo /var/log/mongodb chown -R mongod:mongod /var/lib/mongo /var/log/mongodb chmod 755 /var/lib/mongo /var/log/mongodb

3.2 配置文件调整

编辑主配置文件:

vi /etc/mongod.conf

几个关键配置项建议修改:

storage: dbPath: /var/lib/mongo journal: enabled: true systemLog: destination: file logAppend: true path: /var/log/mongodb/mongod.log net: port: 27017 bindIp: 0.0.0.0 # 如需远程访问,改为0.0.0.0 security: authorization: enabled # 启用认证(生产环境必须)

重要:如果修改了bindIp,务必配置防火墙或安全组规则,只允许可信IP访问27017端口。

4. 服务管理与基本操作

4.1 启动与停止服务

使用systemctl管理MongoDB服务:

# 启动服务 systemctl start mongod # 设置开机启动 systemctl enable mongod # 检查状态 systemctl status mongod # 停止服务 systemctl stop mongod # 重启服务 systemctl restart mongod

4.2 验证安装

连接MongoDB shell验证安装:

mongo

在shell中执行以下命令查看版本信息:

db.version()

4.3 创建管理员用户

在生产环境中,必须创建至少一个管理员用户:

use admin db.createUser({ user: "admin", pwd: "yourStrongPassword", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] })

创建后需要重新启动MongoDB使认证生效:

systemctl restart mongod

5. 常见问题排查

5.1 服务启动失败

如果遇到服务无法启动,首先检查日志:

journalctl -u mongod -n 50 --no-pager

常见问题及解决方案:

错误现象可能原因解决方案
无法绑定端口端口被占用或权限不足检查27017端口是否空闲,或修改mongod.conf中的端口
数据目录权限错误mongod用户无写入权限执行chown mongod:mongod /var/lib/mongo -R
认证失败密码错误或用户不存在检查用户名密码,确认authSource参数正确

5.2 性能调优建议

对于生产环境,建议调整以下内核参数:

# 增加文件描述符限制 echo "mongod soft nofile 64000" >> /etc/security/limits.conf echo "mongod hard nofile 64000" >> /etc/security/limits.conf # 调整透明大页设置 echo "never" > /sys/kernel/mm/transparent_hugepage/enabled echo "never" > /sys/kernel/mm/transparent_hugepage/defrag

6. 进阶配置选项

6.1 启用分片集群

如果需要配置分片集群,需要修改配置文件:

sharding: clusterRole: "configsvr" # 或"shardsvr"/"mongos"

6.2 启用TLS加密

生成证书后配置TLS:

net: tls: mode: requireTLS certificateKeyFile: /path/to/mongodb.pem CAFile: /path/to/ca.pem

6.3 配置副本集

编辑配置文件添加副本集配置:

replication: replSetName: "rs0"

初始化副本集:

rs.initiate({ _id: "rs0", members: [ { _id: 0, host: "primary.example.com:27017" }, { _id: 1, host: "secondary1.example.com:27017" }, { _id: 2, host: "secondary2.example.com:27017" } ] })

7. 备份与恢复策略

7.1 使用mongodump备份

mongodump --uri="mongodb://admin:password@localhost:27017" --out=/backup/mongodb

7.2 使用mongorestore恢复

mongorestore --uri="mongodb://admin:password@localhost:27017" /backup/mongodb

7.3 定时备份脚本示例

创建/usr/local/bin/mongodb-backup.sh:

#!/bin/bash DATE=$(date +%Y%m%d) BACKUP_DIR="/backup/mongodb/$DATE" mkdir -p $BACKUP_DIR mongodump --uri="mongodb://admin:password@localhost:27017" --out=$BACKUP_DIR find /backup/mongodb -type d -mtime +7 -exec rm -rf {} \;

添加到crontab:

0 2 * * * /usr/local/bin/mongodb-backup.sh

8. 监控与维护

8.1 启用免费监控

db.enableFreeMonitoring()

8.2 使用MongoDB Atlas监控

注册Atlas账户后获取监控代理:

curl -sSL https://www.mongodb.com/try/download/compass -o mongodb-compass.rpm yum localinstall mongodb-compass.rpm

8.3 日常维护命令

// 查看数据库状态 db.serverStatus() // 查看当前操作 db.currentOp() // 终止长时间运行的操作 db.killOp(opid)

9. 性能优化技巧

9.1 索引优化

// 创建索引 db.collection.createIndex({ field: 1 }) // 查看索引 db.collection.getIndexes() // 删除索引 db.collection.dropIndex("index_name")

9.2 查询优化

使用explain分析查询:

db.collection.find({ field: "value" }).explain("executionStats")

9.3 内存配置

在/etc/mongod.conf中调整:

storage: wiredTiger: engineConfig: cacheSizeGB: 4 # 根据服务器内存调整

10. 安全加固措施

10.1 网络隔离

net: bindIp: 127.0.0.1,10.0.0.100 # 只绑定特定IP

10.2 启用审计日志

auditLog: destination: file format: JSON path: /var/log/mongodb/audit.log

10.3 定期轮换日志

# 日志轮转配置 vi /etc/logrotate.d/mongodb /var/log/mongodb/*.log { daily rotate 30 compress delaycompress missingok notifempty sharedscripts postrotate /bin/kill -SIGUSR1 $(cat /var/run/mongodb/mongod.pid 2>/dev/null) 2>/dev/null || true endscript }

在实际部署过程中,我发现MongoDB的性能对文件系统选择非常敏感。在CentOS 7上,使用XFS文件系统相比ext4可以获得更好的写入性能。另外,如果服务器有多个磁盘,将journal目录放在单独的磁盘上也能显著提升性能。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/31 2:46:42

清华Dolphin模型:轻量级视听语音分离技术突破

1. 项目背景与核心突破清华大学团队最新发布的Dolphin模型在视听语音分离(AVSS)领域实现了重大突破。这个仅6M参数的轻量级模型不仅刷新了多项基准测试记录,更将推理速度提升至现有SOTA模型的6倍以上。这项成果发表在ICLR 2026上,…

作者头像 李华
网站建设 2026/10/31 2:46:28

C++算法工程化实战:从伪代码到高性能实现

简介:《Implementing Useful Algorithms in C》是Dmytro Kedyk撰写的一部面向中高级C开发者与算法学习者的实用算法实现指南,聚焦如何在C中正确设计、实现并优化算法,帮助读者跨越从理论到工程落地的鸿沟。全书从算法正确性证明、渐进记法与机…

作者头像 李华
网站建设 2026/10/31 2:46:27

零基础学算法:从怕算法到用C++写出第一个程序

简介:这份PDF面向希望深入掌握C算法设计与实现的中高级开发者与计算机专业学生,围绕算法正确性证明、渐进记法、机器模型、随机化算法、数据结构选择、内存管理、代码优化、递归控制、多算法权衡与并行化等主题展开,并延伸至软件工程开发周期…

作者头像 李华
网站建设 2026/10/31 2:46:11

基于CNN的花卉枯萎识别系统设计与实现

1. 项目背景与核心需求花卉健康状态识别在农业生产和园艺养护中具有重要价值。传统的人工检测方法依赖经验判断,存在效率低、主观性强等问题。基于深度学习的图像识别技术为解决这一问题提供了新思路。这个毕业设计项目的核心目标是构建一个能够自动识别花卉是否枯萎…

作者头像 李华
网站建设 2026/10/31 2:45:42

AI基础概念与核心术语全解析

1. AI基础概念解析人工智能(Artificial Intelligence)作为当今科技领域最炙手可热的话题,其专业术语体系常常让初学者望而生畏。从机器学习到神经网络,从监督学习到强化学习,每个术语背后都代表着特定的技术范式和算法…

作者头像 李华
网站建设 2026/10/31 2:44:38

Oracle APEX快速开发指南:PL/SQL转Web与EBS集成避坑

简介:《Oracle APEX深入浅出》是一份面向 Oracle 应用开发初学者与中级开发者的实战型开发指南,围绕基于 Web 的 Oracle APEX 快速构建企业级应用这一主线,帮助读者从环境搭建一路走到部署与集成,解决入门缺少体系、开发缺少范例的…

作者头像 李华