Files
Cloud-book/数据库/MongoDB_2025/MongoDB环境搭建.md
2025-08-27 17:10:05 +08:00

4.7 KiB
Raw Blame History

环境搭建

本章将详细介绍如何在 Rocky Linux 操作系统上安装和配置 MongoDB以及如何管理 MongoDB 服务。正确的环境搭建是后续学习的基础。


安装部署

基于 Rocky Linux 9 系统上,推荐使用 yumdnf 包管理器通过官方源进行安装,这样可以确保安装的是最新稳定版本,并且便于后续更新。

步骤 1: 配置 MongoDB 的 YUM/DNF 仓库

创建一个 /etc/yum.repos.d/mongodb-org-7.0.repo 文件,并添加以下内容:

[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el9-7.0/
gpgcheck=0
enabled=1

步骤 2: 安装 MongoDB

执行以下命令安装 MongoDB 数据库及其相关工具:

# 清理缓存并安装
yum makecache
yum install -y mongodb-org

这个命令会安装以下几个包:

  • mongodb-org-server: mongod 守护进程、配置文件和初始化脚本。
  • mongodb-org-mongos: mongos 守护进程。
  • mongodb-mongosh: MongoDB Shell (mongosh)。
  • mongodb-org-tools: MongoDB 的命令行工具,如 mongodump, mongorestore, mongoimport, mongoexport 等。

相关配置

MongoDB 的主配置文件位于 /etc/mongod.conf,默认的配置文件采用 YAML 格式。以下是一些核心配置项的说明:

# mongod.conf

# 存储设置
storage:
  dbPath: /var/lib/mongo  # 数据文件存放目录
  journal:
    enabled: true      # 是否启用 journal 日志,建议始终开启

# 系统日志设置
systemLog:
  destination: file      # 日志输出到文件
  logAppend: true        # 日志以追加方式写入
  path: /var/log/mongodb/mongod.log  # 日志文件路径

# 网络设置
net:
  port: 27017            # 监听端口
  bindIp: 127.0.0.1      # 绑定的 IP 地址,默认为本地回环地址。如需远程访问,可设置为 0.0.0.0

# 进程管理
processManagement:
  timeZoneInfo: /usr/share/zoneinfo # 时区信息

# 安全设置 (默认禁用)
#security:
#  authorization: enabled # 启用访问控制
  • storage.dbPath: MongoDB 数据文件的存储路径,需要确保 mongod 用户对此目录有读写权限。
  • systemLog.path: 日志文件路径,用于记录数据库的操作和错误信息。
  • net.bindIp: 这是非常重要的安全配置。默认 127.0.0.1 只允许本机连接。如果需要从其他服务器连接,应谨慎地将其设置为服务器的内网 IP 或 0.0.0.0(监听所有网络接口),并配合防火墙和安全组规则使用。

服务管理

在现代 Linux 系统中,我们使用 systemd 来管理 mongod 服务。

# 启动 MongoDB 服务
systemctl start mongod
# 查看服务状态
systemctl status mongod
# 停止 MongoDB 服务
systemctl stop mongod
# 重启 MongoDB 服务
systemctl restart mongod
# 启用开机自启动
systemctl enable mongod
# 禁用开机自启动
systemctl disable mongod

生产配置

这是一个更贴近生产环境的配置文件示例,增加了安全和性能相关的配置。

# /etc/mongod.conf - Production Example

storage:
  dbPath: /var/lib/mongo
  journal:
    enabled: true
  engine: wiredTiger
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1  # 根据服务器内存调整,建议为物理内存的 50% - 60%

systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod.log

net:
  port: 27017
  bindIp: 127.0.0.1,192.168.1.100 # 绑定本地和内网 IP
  maxIncomingConnections: 1000 # 最大连接数

processManagement:
  fork: true # 后台运行
  pidFilePath: /var/run/mongodb/mongod.pid
  timeZoneInfo: /usr/share/zoneinfo

security:
  authorization: enabled # 开启认证

replication:
  replSetName: rs0 # 副本集名称

实践操作

需求描述

  1. 使用 root 用户安装并正常运行
  2. 更改数据目录 dbPath/data/mongodb
  3. 更改监听地址 bindIp0.0.0.0

实践细节和结果验证

# 关闭防火墙和 SELINUX

# 安装 Mongodb 并正常启动
tee /etc/yum.repos.d/mongodb-org-7.0.repo << EOF
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://mirrors.tuna.tsinghua.edu.cn/mongodb/yum/el9-7.0/
gpgcheck=0
enabled=1
EOF
yum makecache
yum install -y mongodb-org
mkdir -p /data/mongodb
sed -i 's|dbPath: /var/lib/mongo|dbPath: /data/mongodb|' /etc/mongod.conf
sed -i 's|bindIp: 127.0.0.1|bindIp: 0.0.0.0|' /etc/mongod.conf
cp /lib/systemd/system/mongod.service /etc/systemd/system/mongod.service
sed -i 's/User=mongod/User=root/' /etc/systemd/system/mongod.service
sed -i 's/Group=mongod/Group=root/' /etc/systemd/system/mongod.service
systemctl start mongod && systemctl enable mongod

# 测试验证
mongod --version