4.7 KiB
4.7 KiB
环境搭建
本章将详细介绍如何在 Rocky Linux 操作系统上安装和配置 MongoDB,以及如何管理 MongoDB 服务。正确的环境搭建是后续学习的基础。
安装部署
基于 Rocky Linux 9 系统上,推荐使用 yum
或 dnf
包管理器通过官方源进行安装,这样可以确保安装的是最新稳定版本,并且便于后续更新。
步骤 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 # 副本集名称
实践操作
需求描述
- 使用
root
用户安装并正常运行 - 更改数据目录
dbPath
为/data/mongodb
- 更改监听地址
bindIp
为0.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