ubuntu(arm)安装MongoDB
2026/6/1 18:04:10 网站建设 项目流程

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步创建的配置文件中写入下面内容

systemLog: destination:filepath:"/root/node2/mongod.log"logAppend:truelogRotate: 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:truepidFilePath:"/var/run/mongodb/mongod.pid"# 建议添加PID文件net: bindIp:127.0.0.1,192.168.5.1 port:27017maxIncomingConnections: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测试脚本

frompymongoimportMongoClientimportsysdefquick_test():"""快速连接测试"""host="192.168.5.138"port=27017try: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()returnTrueexceptExceptionase:print(f"❌ 连接失败:{e}")returnFalseif__name__=="__main__":success=quick_test()sys.exit(0ifsuccesselse1)

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询