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

172 lines
4.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 环境搭建
本章将详细介绍如何在 Rocky Linux 操作系统上安装和配置 MongoDB以及如何管理 MongoDB 服务。正确的环境搭建是后续学习的基础。
---
## 安装部署
基于 Rocky Linux 9 系统上,推荐使用 `yum``dnf` 包管理器通过官方源进行安装,这样可以确保安装的是最新稳定版本,并且便于后续更新。
**步骤 1: 配置 MongoDB 的 YUM/DNF 仓库**
创建一个 `/etc/yum.repos.d/mongodb-org-7.0.repo` 文件,并添加以下内容:
```ini
[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 数据库及其相关工具:
```shell
# 清理缓存并安装
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 格式。以下是一些核心配置项的说明:
```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` 服务。
```shell
# 启动 MongoDB 服务
systemctl start mongod
# 查看服务状态
systemctl status mongod
# 停止 MongoDB 服务
systemctl stop mongod
# 重启 MongoDB 服务
systemctl restart mongod
# 启用开机自启动
systemctl enable mongod
# 禁用开机自启动
systemctl disable mongod
```
## 生产配置
这是一个更贴近生产环境的配置文件示例,增加了安全和性能相关的配置。
```yaml
# /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. 更改监听地址 `bindIp``0.0.0.0`
### 实践细节和结果验证
```shell
# 关闭防火墙和 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
```