08-27-周三_17-09-29
This commit is contained in:
171
数据库/MongoDB_2025/MongoDB环境搭建.md
Normal file
171
数据库/MongoDB_2025/MongoDB环境搭建.md
Normal file
@@ -0,0 +1,171 @@
|
||||
# 环境搭建
|
||||
|
||||
本章将详细介绍如何在 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
|
||||
```
|
||||
|
Reference in New Issue
Block a user