OpenEuler 系统安装 MongoDB 完整教程(在线+离线双方案)
文章简介
本文基于 OpenEuler 22.03 LTS / 24.03 LTS 主流版本,分别讲解联网DNF源快速安装、离线二进制包手动安装两种方式,覆盖环境准备、安装部署、配置优化、开机自启、远程访问、基础验证全流程,适配 x86_64 / aarch64(ARM)架构,适合服务器、虚拟机、信创环境落地使用。
环境说明
操作系统:OpenEuler 22.03 LTS SP2 / 24.03 LTS
数据库版本:MongoDB 4.4 / 5.0 / 8.0(社区版)
架构:x86_64、aarch64(ARM64)
运行模式:单机部署
一、前期环境检查与前置配置
1.1 查看系统架构与版本
# 查看系统架构(区分x86/ARM)
uname -m
# 查看OpenEuler版本
cat /etc/os-release
1.2 关闭防火墙与SELinux(测试环境可选)
生产环境建议放行端口,不直接关闭防火墙。
# 临时关闭防火墙
systemctl stop firewalld
# 禁止开机自启防火墙
systemctl disable firewalld
# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux(重启生效)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
1.3 系统依赖安装
MongoDB 依赖基础系统库,提前安装:
dnf install -y libcurl openssl xz glibc
二、方案一:联网环境 DNF 源快速安装(推荐)
适用于服务器可访问外网,一键部署、自动配置服务,运维最简单。
2.1 配置 MongoDB 官方 YUM/DNF 源
创建源文件
vi /etc/yum.repos.d/mongodb-org.repo
写入以下源内容(以 MongoDB 8.0 为例)
[mongodb-org-8.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/8.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-8.0.asc
架构为 aarch64(ARM) 时,将 x86_64 替换为 aarch64。
2.2 执行安装
# 清空本地缓存
dnf clean all
dnf makecache
# 安装完整MongoDB套件(服务端+客户端+工具)
dnf install -y mongodb-org
2.3 启动服务并设置开机自启
# 启动服务
systemctl start mongod
# 开机自启
systemctl enable mongod
# 查看运行状态
systemctl status mongod
2.4 验证安装
# 查看版本
mongod --version
# 连接数据库(进入Mongo Shell)
mongosh
2.5 基础配置修改(远程访问)
默认仅本地 127.0.0.1 访问,如需局域网/公网连接,修改配置文件:
vi /etc/mongod.conf
修改两个核心参数:
# 绑定所有IP,允许远程连接
bindIp: 0.0.0.0
# 端口默认27017,可自定义
port: 27017
重启服务生效:
systemctl restart mongod
三、方案二:离线二进制包安装(无网络/信创环境专用)
适用于内网、隔离环境,不依赖软件源,版本可控,是离线部署标准方案。
3.1 下载离线安装包(有网机器操作)
前往 MongoDB 官网下载对应架构 .tgz 包:
官网地址:https://www.mongodb.com/try/download/community
常用下载链接(wget 直接下载)
# x86_64 MongoDB 4.4
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.18.tgz
# aarch64(ARM) MongoDB 4.4
wget https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-rhel80-4.4.18.tgz
将下载好的 tgz 包通过 Xftp、U盘等方式上传至 OpenEuler 服务器。
3.2 解压并迁移目录
# 进入上传目录,解压压缩包
tar -zxvf mongodb-linux-*.tgz
# 移动到统一安装目录 /usr/local
mv mongodb-linux-* /usr/local/mongodb
3.3 创建数据、日志、配置目录
# 批量创建目录
mkdir -p /usr/local/mongodb/{data,logs,conf}
# 创建日志文件
touch /usr/local/mongodb/logs/mongodb.log
3.4 编写 MongoDB 配置文件
vi /usr/local/mongodb/conf/mongodb.conf
写入以下配置(标准单机配置):
# 数据存储目录
dbpath=/usr/local/mongodb/data
# 日志文件路径
logpath=/usr/local/mongodb/logs/mongodb.log
# 日志追加模式
logappend=true
# 后台守护进程启动
fork=true
# 监听端口
port=27017
# 允许所有IP远程访问
bind_ip=0.0.0.0
# 开启日志
journal=true
# 关闭安静模式
quiet=false
3.5 配置系统环境变量
全局调用 mongod、mongosh 命令:
vi /etc/profile
文件末尾追加:
export PATH=$PATH:/usr/local/mongodb/bin
生效环境变量:
source /etc/profile
# 验证命令
mongod --version
3.6 手动启动/停止数据库
# 启动MongoDB(指定配置文件)
mongod -f /usr/local/mongodb/conf/mongodb.conf
# 连接数据库
mongosh
# 正常关闭数据库(推荐)
mongosh --eval "db.adminCommand('shutdown')"
# 强制停止(不推荐,易损坏数据)
pkill mongod
3.7 配置 Systemd 开机自启(离线核心步骤)
手动安装默认无系统服务,创建 systemd 单元文件实现开机自启。
vi /usr/lib/systemd/system/mongod.service
写入内容:
[Unit]
Description=MongoDB Database Service
After=network.target
[Service]
Type=forking
ExecStart=/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf
ExecStop=/usr/local/mongodb/bin/mongosh --eval "db.adminCommand('shutdown')"
PrivateTmp=true
[Install]
WantedBy=multi-user.target
重新加载服务、设置开机自启:
systemctl daemon-reload
systemctl start mongod
systemctl enable mongod
systemctl status mongod
四、防火墙端口放行(生产环境必备)
若未关闭防火墙,需放行 MongoDB 默认端口 27017:
# 放行27017端口
firewall-cmd --permanent --add-port=27017/tcp
# 重载防火墙规则
firewall-cmd --reload
# 查看已放行端口
firewall-cmd --list-ports
五、基础安全配置(账号认证)
MongoDB 默认无密码,生产环境必须开启身份认证。
5.1 登录数据库创建管理员账号
mongosh
# 切换到admin库
use admin
# 创建超级管理员
db.createUser({
user: "root",
pwd: "你的强密码",
roles: ["root"]
})
exit
5.2 修改配置开启认证
编辑配置文件,添加 auth=true:
DNF安装:vi /etc/mongod.conf
离线安装:vi /usr/local/mongodb/conf/mongodb.conf
添加配置:
auth=true
重启服务:
systemctl restart mongod
5.3 带密码连接数据库
# 方式1:连接时指定账号密码
mongosh -u root -p --authenticationDatabase admin
# 方式2:连接后认证
mongosh
use admin
db.auth("root","你的密码")
六、常见问题排错
端口被占用
# 查看27017端口占用
netstat -tulpn | grep 27017
# 结束占用进程
kill -9 进程ID
数据目录权限不足
# 赋予目录权限
chmod -R 755 /usr/local/mongodb
chown -R root:root /usr/local/mongodb
开机自启失效
执行 systemctl daemon-reload 重新加载服务配置。
远程无法连接
检查三点:bindIp=0.0.0.0、防火墙端口放行、SELinux 状态。
七、总结
联网环境:优先使用 DNF 源安装,命令少、自动管理服务,运维效率最高;
离线/内网/信创:使用 二进制包安装,版本灵活、适配所有架构;
生产环境三大底线:开启账号认证、放行指定端口、不直接关闭防火墙;
OpenEuler 兼容 RHEL 系列命令,MongoDB 部署逻辑与 CentOS 基本一致,可无缝迁移。
博客标签
OpenEuler MongoDB 数据库安装 离线部署 信创 Linux运维