ubuntu(arm)安装MongoDB

ubuntu20.05 armv8a,

1、下载tgz包,好处是自定义安装

复制代码
wget https://fastdl.mongodb.org/linux/mongodb-linux-aarch64-ubuntu2204-7.0.28.tgz

2、解压和改名

复制代码
tar -xzf mongo*
mv mong* mongo

3、移动到/usr/local下

复制代码
mv mongo /usr/local

4、在 root 文件夹下创建 KeyFile 用于多节点认证

复制代码
openssl rand -base64 745 > /root/KeyFile

5、调整认证文件为只读

复制代码
chmod 600 /root/KeyFile

6、 创建 Mongodb 运行配置文件

复制代码
touch /root/node1/mdb.config
touch /root/node2/mdb.config
# 创建pid文件
mkdir -p /var/run/mongodb

7、创建 Mongodb 数据文件夹

复制代码
mkdir mkdir /root/node1/data
mkdir mkdir /root/node2/data

8、在第6步创建的配置文件中写入下面内容

bash 复制代码
systemLog:
  destination: file
  path: "/root/node2/mongod.log"
  logAppend: true
  logRotate: reopen  # 可选:日志轮转

storage:
  dbPath: "/root/node2/data"
  engine: "wiredTiger"  # MongoDB 7 默认,但明确指定更好
  wiredTiger:
    engineConfig:
      cacheSizeGB: 1  # 根据你的内存调整,建议为系统内存的50%-70%
      journalCompressor: "snappy"  # 日志压缩算法
    collectionConfig:
      blockCompressor: "snappy"  # 集合数据压缩
    indexConfig:
      prefixCompression: true  # 索引前缀压缩

processManagement:
  fork: true
  pidFilePath: "/var/run/mongodb/mongod.pid"  # 建议添加PID文件

net:
  bindIp: 127.0.0.1,192.168.5.1
  port: 27017
  maxIncomingConnections: 10  # 最大连接数

security:
  keyFile: "/root/KeyFile"
  # 可选:启用认证
  # authorization: enabled

# replication:
#   replSetName: "rs0"

# 可选:操作分析
operationProfiling:
  mode: "slowOp"
  slowOpThresholdMs: 100
  # slowOpSampleRate: 0.5  # 慢操作采样率

# 可选:分片配置(如果你在使用分片)
# sharding:
#   clusterRole: "shardsvr"  # 或 "configsvr"

path 的值根据不同节点的路径调整,dbPath 的值和 KeyFile 的值均是如此.

其中 bindIp 的值填入 127.0.0.1 和当前服务器的 IP 地址.

port 值在 node1 中填入 27017,node2 中填入 27018

9、配置数据库

启动数据库

复制代码
mongod -f /root/node1/mdb.config & mongod -f /root/node2/mdb.config

可以登录测试了,tar.gz不自带客户端,可以使用python测试,或者其他工具测试,这里是一个python测试脚本

python 复制代码
from pymongo import MongoClient
import sys

def quick_test():
    """快速连接测试"""
    host = "192.168.5.138"
    port = 27017

    try:
        client = MongoClient(host, port, serverSelectionTimeoutMS=3000)
        client.admin.command('ping')

        print(f"✅ 连接成功: {host}:{port}")
        print(f"MongoDB 版本: {client.server_info()['version']}")

        # 查看数据库
        dbs = client.list_database_names()
        print(f"数据库数量: {len(dbs)}")
        print("前5个数据库:", dbs[:5])

        client.close()
        return True

    except Exception as e:
        print(f"❌ 连接失败: {e}")
        return False

if __name__ == "__main__":
    success = quick_test()
    sys.exit(0 if success else 1)
相关推荐
花阴偷移1 小时前
Ubuntu 22.04版本下配置静态IP
linux·运维·服务器·tcp/ip·ubuntu
吃西瓜的年年3 小时前
TypeScript
javascript·ubuntu·typescript
枕星而眠4 小时前
Linux 四大进程/线程同步锁详解:互斥锁、读写锁、条件变量、文件锁
linux·c语言·后端·ubuntu·学习方法
子建莫敌10 小时前
50 ubuntu22.04
ubuntu
三易串口屏10 小时前
实验2 实时显示单片机的参数(整数、小数、中文 自定义协议方式)
单片机·物联网·mongodb·自动化·串口屏·医疗器械·工控设备
深圳市九鼎创展科技14 小时前
九鼎创展 X7110 开发板(JH7110):国产 RISC-V 多媒体平台全解析
大数据·linux·人工智能·嵌入式硬件·ubuntu·risc-v
虹科汽车电子14 小时前
高效传感器与ECU研发测试方案:虹科PSI5模拟器加速智能安全系统落地
arm开发·安全·seskion
lingx_gps15 小时前
领新北斗(TracSeek)车辆动态监控系统 - Linux(Ubuntu) 安装部署完整指南
linux·运维·ubuntu·jt808·车辆监控·jt1078·北斗定位
阿正的梦工坊15 小时前
【Typescript】13-tsconfig与工程化实践
ubuntu·typescript
Trouvaille ~15 小时前
【Redis篇】Redis 安装与启动:快速搭建一个 Redis 环境
数据库·redis·后端·ubuntu·缓存·环境搭建·安装教程