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)
相关推荐
是馄饨呀2 小时前
【mongoDB】mongoDB 单节点版本升级,基于CVE-2025-14847漏洞进行版本升级
mongodb
Msshu1232 小时前
多功能快充诱骗芯片 XSP26支持与主板共用一个Type-C可取电可输出数据
hadoop·mongodb·nosql·memcache·tdengine
久违8162 小时前
PHP 安全与部署知识总结
linux·ubuntu·php
浅安的邂逅2 小时前
ubuntu 18.04及以上版本 ping命令报错:Name or service not known解决方法
linux·运维·ubuntu·ip设置
具身智能之心12 小时前
上海交大发布U-Arm:突破成本壁垒,实现超低成本通用机械臂遥操作系统
arm开发·机械臂·具身智能
阿豪只会阿巴15 小时前
【多喝热水系列】从零开始的ROS2之旅——Day10 话题的订阅与发布1:Python
开发语言·c++·python·ubuntu·ros2
yeflx16 小时前
Ubuntu下Colmap源码编译调试
ubuntu·3d
宇宙帅猴16 小时前
【Ubuntu踩坑及解决方案(一)】
linux·运维·ubuntu·go
_Xiaosz16 小时前
Photo-SLAM / ORB-SLAM3 编译报错解决:undefined reference to DUtils::Random
linux·ubuntu