openEuler系统下安装MongoDB的技术教程

你需要一份在openEuler系统下安装MongoDB的技术教程,我会按照环境准备→安装部署→配置启动→功能验证的流程,提供详细且可直接操作的步骤,同时覆盖开源版MongoDB(社区版)的核心配置要点。

一、环境说明

  • 系统版本:openEuler 20.03/LTS/22.03(x86_64/ARM64均适用,下文以x86_64为例)
  • MongoDB版本:7.0(社区版,当前稳定版)
  • 前提条件:拥有root权限,服务器能访问外网(或已准备MongoDB安装包)

二、步骤1:环境准备与依赖配置

1.1 更新系统并安装基础依赖
bash 复制代码
# 切换到root用户(若已为root可跳过)
su root

# 更新系统包
dnf update -y

# 安装基础依赖(MongoDB运行所需)
dnf install -y wget net-tools libcurl openssl
1.2 配置MongoDB官方yum源

openEuler基于RPM包管理,直接使用MongoDB官方yum源更便捷:

bash 复制代码
# 创建MongoDB的yum源配置文件
vim /etc/yum.repos.d/mongodb-org-7.0.repo

将以下内容粘贴到文件中(适配openEuler的RHEL兼容架构):

ini 复制代码
[mongodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/7.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-7.0.asc

说明:如果是ARM64架构,将x86_64替换为aarch64即可。

三、步骤2:安装MongoDB社区版

bash 复制代码
# 安装MongoDB完整包(包含服务端、客户端、工具)
dnf install -y mongodb-org

# 验证安装版本(确认安装成功)
mongod --version

安装成功后,会输出类似如下版本信息:

复制代码
db version v7.0.8
Build Info: {
    "version": "7.0.8",
    "gitVersion": "xxx",
    "openSSLVersion": "OpenSSL 1.1.1k  25 Mar 2021",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "rhel8",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

四、步骤3:MongoDB核心配置

3.1 创建数据和日志目录(默认目录需手动创建)
bash 复制代码
# 创建数据存储目录
mkdir -p /var/lib/mongo
# 创建日志存储目录
mkdir -p /var/log/mongodb
# 设置目录权限为mongodb用户(安装后自动创建的系统用户)
chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb
chmod -R 755 /var/lib/mongo /var/log/mongodb
3.2 修改MongoDB配置文件

MongoDB默认配置文件为/etc/mongod.conf,需调整关键配置以适配生产/测试环境:

bash 复制代码
vim /etc/mongod.conf

修改后的核心配置如下(保留注释,关键项修改):

yaml 复制代码
# 网络配置
net:
  port: 27017  # 默认端口,可自定义
  bindIp: 0.0.0.0  # 允许所有IP访问,测试环境用;生产环境改为具体IP

# 数据存储
storage:
  dbPath: /var/lib/mongo  # 数据目录,对应上面创建的路径
  engine: wiredTiger  # 默认存储引擎,高性能

# 日志配置
systemLog:
  destination: file
  path: /var/log/mongodb/mongod.log  # 日志文件路径
  logAppend: true  # 日志追加模式,不覆盖旧日志

# 进程管理
processManagement:
  fork: true  # 以守护进程方式运行
  pidFilePath: /var/run/mongodb/mongod.pid  # PID文件路径

# 副本集/单节点配置(单节点无需配置replicaSet,注释即可)
# replication:
#   replSetName: rs0

# 安全配置(测试环境可先关闭,生产环境必须开启认证)
security:
  authorization: disabled  # 临时关闭认证,后续可开启

说明:生产环境需开启authorization: enabled(认证),并创建管理员账户。

五、步骤4:启动MongoDB并设置开机自启

bash 复制代码
# 启动mongod服务
systemctl start mongod

# 设置开机自启
systemctl enable mongod

# 查看服务状态(确认是否active running)
systemctl status mongod

若状态显示active (running),说明服务启动成功;若失败,可查看日志/var/log/mongodb/mongod.log定位问题。

(可选)关闭防火墙和SELinux(测试环境)

如果客户端无法连接MongoDB,可临时关闭防火墙和SELinux(生产环境需配置规则,而非直接关闭):

bash 复制代码
# 临时关闭防火墙
systemctl stop firewalld
systemctl disable firewalld

# 临时关闭SELinux
setenforce 0
# 永久关闭SELinux(需重启服务器)
sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

六、步骤5:功能验证与基础操作

6.1 连接MongoDB客户端
bash 复制代码
# 本地连接(默认无认证)
mongo
# 或使用新的客户端命令(MongoDB 6.0+推荐)
mongosh
6.2 基础操作示例(创建数据库、集合、插入数据)
javascript 复制代码
// 1. 创建/切换到test数据库(MongoDB无显式创建,首次写入即创建)
use test

// 2. 创建集合并插入数据
db.user.insertOne({
    name: "openEuler",
    age: 5,
    platform: "openEuler 22.03"
})

// 3. 查询数据
db.user.find()

// 4. 退出客户端
exit

执行后若能看到插入的文档数据,说明MongoDB功能正常。

七、步骤6:生产环境必备配置(开启认证)

测试环境完成后,生产环境需开启用户认证,步骤如下:

bash 复制代码
# 1. 重新连接MongoDB
mongosh

# 2. 切换到admin数据库(系统库)
use admin

# 3. 创建管理员账户(拥有所有权限)
db.createUser({
    user: "root",
    pwd: "MongoDB@123",  # 自定义强密码
    roles: [{role: "root", db: "admin"}]
})

# 4. 退出客户端
exit

# 5. 修改配置文件开启认证
vim /etc/mongod.conf
# 将security下的authorization改为enabled:
security:
  authorization: enabled

# 6. 重启mongod服务使配置生效
systemctl restart mongod

# 7. 使用认证连接MongoDB
mongosh -u root -p MongoDB@123 --authenticationDatabase admin

八、常见问题解决

  1. 启动失败:提示端口被占用
    查看端口占用:netstat -tulpn | grep 27017,杀死占用进程或修改mongod.conf中的port配置。
  2. 权限不足:无法写入数据/日志
    重新设置目录权限:chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb
  3. 外网无法连接
    确认bindIp0.0.0.0,且防火墙开放27017端口:firewall-cmd --add-port=27017/tcp --permanent && firewall-cmd --reload

总结

  1. 在openEuler下安装MongoDB的核心步骤为:配置官方yum源→安装包→创建数据/日志目录→修改配置→启动服务。
  2. 测试环境可临时关闭认证和防火墙,生产环境必须开启用户认证、限制IP访问并配置防火墙规则。
  3. 若遇到启动或连接问题,优先查看MongoDB日志文件/var/log/mongodb/mongod.log定位原因。
相关推荐
ruleslol8 小时前
MySQL的段、区、页、行 详解
数据库·mysql
正在学习前端的---小方同学8 小时前
Harbor部署教程
linux·运维
while(1){yan}8 小时前
MyBatis Generator
数据库·spring boot·java-ee·mybatis
それども8 小时前
MySQL affectedRows 计算逻辑
数据库·mysql
是小章啊8 小时前
MySQL 之SQL 执行规则及索引详解
数据库·sql·mysql
牛奔9 小时前
Docker Compose 两种安装与使用方式详解(适用于 Docker 19.03 版本)
运维·docker·云原生·容器·eureka
富士康质检员张全蛋9 小时前
JDBC 连接池
数据库
yangminlei9 小时前
集成Camunda到Spring Boot项目
数据库·oracle
翼龙云_cloud9 小时前
阿里云渠道商:如何手动一键扩缩容ECS实例?
运维·服务器·阿里云·云计算
ChineHe10 小时前
Redis数据类型篇002_详解Strings核心命令与存储结构
数据库·redis·缓存