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 小时前
如何在Reaonix中使用CodeGraph以及CodeGraph效果实测经验分享
linux·运维·ubuntu
吴声子夜歌3 小时前
MongoDB 8.0——可视化管理工具
数据库·mongodb
诸葛老刘3 小时前
Ubuntu 服务器常用运维命令
运维·服务器·ubuntu
吴声子夜歌3 小时前
MongoDB 4.2——安装 MongoDB
数据库·mongodb
吴声子夜歌3 小时前
MongoDB 8.0——MongoDB的安装
数据库·mongodb
阡陌..14 小时前
Ubuntu 22.04 离线环境完全配置指南:从 GCC 到 NVIDIA 驱动再到 Samba 共享
linux·运维·ubuntu
Lee_jerome16 小时前
《C/C++编译全家桶:g++四阶段、.a与.so区别、CMake构建、ARM交叉编译,这篇全讲透了》
c语言·开发语言·arm开发·c++·编译·cmake·cmakelists
feasibility.19 小时前
wsl安装Ubuntu方法(含网络不稳定处理)
linux·运维·windows·ubuntu
程序员允诺1 天前
Ubuntu 安装 Docker CE 和 Docker Compose 最新教程(2026)
ubuntu·docker·eureka
风华同学1 天前
【环境搭建篇】VMware Fusion虚拟机安装Ubuntu 26.04
linux·运维·ubuntu