在 openEuler 24.03 LTS 上使用 yum(实际为 dnf,openEuler 兼容 RHEL 的包管理器)安装 MongoDB 7.0.22 的步骤如下(推荐生产环境使用官方仓库安装,便于后续升级和维护):
一、系统要求
操作系统:openEuler 24.03 LTS(x86_64 架构)。
内核版本:建议 4.18 及以上(当前系统已满足)。
磁盘空间:至少 10GB(数据目录+日志目录)。
内存:建议 8GB 及以上(根据业务需求调整)。
二、准备工作
1. 卸载旧版本(如有)
若系统已安装旧版 MongoDB(如通过 yum 安装的 4.x/5.x),需先彻底卸载:
# 停止旧服务
sudo systemctl stop mongod mongos
# 移除旧 RPM 包(会自动删除 /var/lib/mongodb 等目录,谨慎操作!)
sudo dnf remove -y mongodb-org*
# 清理残留配置(可选)
sudo rm -rf /etc/mongod.conf /etc/mongos.conf
2. 安装依赖
MongoDB 7.0 需要以下依赖,openEuler 24.03 通常已预装,缺失时手动安装:
sudo dnf install -y libcurl openssl libstdc++ python3
三、添加 MongoDB 官方 YUM 仓库
MongoDB 官方为 RHEL 兼容系统(如 openEuler)提供了专用仓库,需先导入 GPG 密钥并配置仓库文件。
1. 导入 GPG 密钥(验证包完整性)
sudo rpm --import https://pgp.mongodb.com/server-7.0.asc
2. 创建 YUM 仓库配置文件
根据 openEuler 24.03 对应的 RHEL 版本(openEuler 24.03 基于 RHEL 9 内核,兼容 RHEL 9 的包),创建 /etc/yum.repos.d/mongodb-org.repo 文件:
sudo vi /etc/yum.repos.d/mongodb-org.repo
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/9/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://pgp.mongodb.com/server-7.0.asc
四、使用 yum 安装 MongoDB 7.0.22
1. 刷新 YUM 缓存
sudo dnf clean all # 清理旧缓存
sudo dnf makecache # 重新生成缓存(会自动拉取新仓库的元数据)
2. 安装 MongoDB 核心组件
MongoDB 官方仓库默认提供 mongodb-org 元包(包含 mongod 服务端、mongo 客户端等),安装时指定版本为 7.0.22:
sudo dnf install -y mongodb-org-7.0.22 mongodb-org-server-7.0.22 mongodb-org-shell-7.0.22 mongodb-org-mongos-7.0.22 mongodb-org-tools-7.0.22
3. 缺失mongodb-org-shell-7.0.22

sudo dnf list available mongodb-org-* #查看可用包列表 是否有 mongodb-org-shell-7.0.22包

sudo dnf remove -y mongodb-org-shell-7.0.22 # 忽略不存在的包提示
sudo dnf install -y mongodb-org-7.0.22 # 安装 mongodb 7.0.22

五、启动 MongoDB 服务
1. 启动服务
sudo systemctl start mongod
2.开机自动启动
sudo systemctl enable mongod
2. 检查服务状态 # 应显示 "active (running)"
sudo systemctl status mongod

六、验证安装
1. 连接 MongoDB Shell
mongosh # 或 /usr/bin/mongo(旧版本客户端)
2. 查看版本
在 MongoDB Shell 中执行:
db.version() # 应输出 "7.0.22"
七、配置 MongoDB
安装完成后,默认配置文件位于 /etc/mongod.conf,需根据需求调整关键参数。
修改 mongod.conf 中的路径
sudo vi /etc/mongod.conf
1. 修改以下配置 允许远程连接(生产环境建议限制为具体 IP):
net:
port: 27017 # 监听端口(默认即可)
bindIp: 0.0.0.0 # 允许远程连接(生产环境建议限制为具体 IP)
2. 配置数据目录和日志目录(推荐自定义路径)
2.1. 默认数据目录为 /var/lib/mongo,日志目录为 /var/log/mongodb,若需修改:
sudo mkdir -p /data/mongodb/data/db # 自定义数据目录
sudo mkdir -p /data/mongodb/logs # 自定义日志目录
2.2. 创建自定义目录的权限(重要!)
MongoDB 服务默认以 mongod 用户运行,需确保自定义目录的权限正确:
sudo useradd -r -s /sbin/nologin mongod # 若未自动创建该用户
sudo chown -R mongod:mongod /data/mongodb/{data,logs}
sudo chown mongod:mongod /var/run/mongodb # PID 文件目录权限
sudo vi /etc/mongod.conf
storage: dbPath: /data/mongodb/data/db # 新数据目录 # journal: # enabled: true # 生产环境必须启用日志 # 仅当 MongoDB 版本 <5.0 时需要,7.0+ 可省略或注释 # 或直接删除 journal.enabled 行(7.0+ 自动管理日志) systemLog: destination: file logAppend: true path: /data/mongodb/logs/mongod.log # 新日志路径 net: port: 27017 # 监听端口(默认即可) bindIp: 0.0.0.0 # 允许远程连接(生产环境建议限制为具体 IP) processManagement: fork: true # 后台运行 pidFilePath: /var/run/mongodb/mongod.pid # PID 文件路径(需确保存在)
3. 重新加载服务配置(修改配置文件后必须执行)
sudo systemctl daemon-reload
再次执行
五、启动 MongoDB 服务
六、验证安装
八、常见问题处理
1. 启动失败:端口被占用
检查端口占用:ss -tlnp | grep 27017。
终止冲突进程或修改 /etc/mongod.conf 中的 net.port。
2. 权限不足错误
错误日志示例:Permission denied 访问 /data/mongodb/data/db。
解决:确保 mongod 用户对数据目录、日志目录有读写权限(chown -R mongod:mongod /path)。
3. SELinux 或防火墙阻止连接
SELinux:临时关闭测试(setenforce 0),永久关闭需修改 /etc/selinux/config 中的 SELINUX=disabled。
防火墙(firewalld):开放 27017 端口:
sudo firewall-cmd --add-port=27017/tcp --permanent
sudo firewall-cmd --reload
4. 仓库无法访问(下载包失败)
检查网络连接是否正常。
确认仓库 URL 正确(/etc/yum.repos.d/mongodb-org.repo 中的 baseurl 是否指向 RHEL 9 的 7.0 版本)。
九、后续操作建议
启用身份验证(生产环境必须):
编辑 /etc/mongod.conf,添加 security.authorization: enabled,重启服务后创建管理员账号:
use admin
db.createUser({
user: "admin",
pwd: passwordPrompt(), # 输入密码
roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
})

551

被折叠的 条评论
为什么被折叠?



