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)
相关推荐
05候补工程师1 分钟前
【ROS 2 具身智能】Gazebo 仿真避坑指南:从“幽灵机器人”到传感器数据流打通
人工智能·经验分享·笔记·ubuntu·机器人
zhangrelay4 小时前
Ubuntu 18.04 经典 / 有趣 / 实用 APT 软件清单
linux·笔记·学习·ubuntu
zhouwy1134 小时前
ARM汇编指令集详解
汇编·arm开发
the_fat_bird4 小时前
ubuntu install nvidia gpu driver
linux·运维·ubuntu
zhangrelay5 小时前
ROS Kinetic-信号与系统-趣味案例
linux·笔记·学习·ubuntu
星马梦缘16 小时前
如何切换window-ubuntu双系统【方案二】
linux·运维·ubuntu
山后太阳19 小时前
Keil5(MDK-ARM)完整下载安装教程+入门教程:从零搭建STM32开发环境
arm开发·stm32·嵌入式硬件
zz_lzh19 小时前
arm版AI牛马:armbian(rk3588)设备部署openclaw
arm开发·人工智能·arm
爬山算法21 小时前
MongoDB(113)如何使用第三方工具进行MongoDB监控?
数据库·mongodb
WaiSaa21 小时前
Ubuntu配置Git免密操作
git·ubuntu·gitee