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)
相关推荐
JANGHIGH3 小时前
基于ADE20K数据集的SETR模型训练
ubuntu
丰色木夕4 小时前
Ubuntu22.04下源码编译安装USD-Brep
c++·ubuntu·nvidia·usd-brep
殷忆枫5 小时前
告别依赖地狱!在 Ubuntu 上用 Docker 极速部署 Home Assistant 与 MQTT,并接入 Siri 与嵌入式 C 终端
linux·ubuntu·docker
xatu10 小时前
ubuntu容器在redhat系统下使用大模型API问题
linux·运维·ubuntu
女神下凡10 小时前
芯参谋(61):PMSM永磁同步电机驱动电路设计指南
arm开发·单片机·嵌入式硬件·硬件工程·设计规范
早八晚十啊11 小时前
基于ARM Cortex-A53与LVGL 9.0的智能车载系统设计与实现
arm开发·车载系统
Lysander.Jovian12 小时前
CentOS 迁移 Ubuntu 24.04 使用教程
ubuntu
a59865212 小时前
ARM服务器部署Docker云手机,多开实例性能实测
服务器·arm开发·docker·云手机
a59865213 小时前
ARM服务器搭建云手机教程|原生ARM架构,消除指令转译损耗
arm开发
2401_8724187814 小时前
把 Ubuntu 服务器变成 AI Agent 终端:用自然语言或语音管理 Linux,任何命令都先审批(附完整 Python 源码)
linux·服务器·ubuntu·agent