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定位原因。
相关推荐
广东大榕树信息科技有限公司2 小时前
如何实现动环监控系统的国产化与智能化?
运维·网络·物联网·国产动环监控系统·动环监控系统
SelectDB2 小时前
Apache Doris AI 能力揭秘(四):HSAP 一体化混合搜索架构全解
数据库·人工智能·agent
tzhou644522 小时前
自动化运维利器Ansible
运维·自动化·ansible
代码游侠2 小时前
学习笔记——线程控制 - 互斥与同步
linux·运维·笔记·学习·算法
程序人生5183 小时前
解决Dbeaver 连上 MySQL 数据库后不显示 information_schame、mysql 等数据库
数据库·mysql
与衫3 小时前
SQLFlow × 高斯数据库:构建可治理、可追溯的数据底座
数据库·oracle
小小测试开发3 小时前
SQL常用语法全解析:从入门到进阶的实战指南
数据库·sql
Bruce_Liuxiaowei3 小时前
SSH主机密钥验证失败(Host key verification failed)深度解析与解决方案
运维·网络·ssh
暗之星瞳3 小时前
mysql练习
数据库·mysql