likes
comments
collection
share

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

作者站长头像
站长
· 阅读数 3

前言

这两天在国产麒麟操作系统上安装MongoDB。说实话一开始我没怎么放在心上,毕竟以前在CentOS上通过脚本一键安装、全程只要几十秒。但后续不断踩坑我才发现,这次显然低估了它的难度。

首先系统架构不一样,以前的shell脚本及安装包只适用于X86架构的系统,肯定是行不通了。其次,Ubuntu我也没怎么接触过,听说安装软件是用apt-get而不是yum。没办法,只能硬着头皮上了。

通过下图能够看出,系统是国产麒麟V10SP1操作系统,内核版本为Linux 5.4.18-35-generic,arm64架构:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

在网上大概搜索了一圈,没有完全匹配的教程,即:既是国产麒麟V10操作系统,又是基于Ubuntu,还得是arm64架构。但也粗略地了解到有以下几种安装方式:

  1. 源码编译安装,这种比较灵活,可以自由选择安装core核心服务、只安装server服务端、全量安装;
  2. 从官网下载安装包、解压安装,但是匹配系统架构以后,发现只有server等可以下载,不够全面:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

  1. 在线下载安装,这种安装出来的也比较全,就是安装目录和配置文件目录看不出来在哪,需要自己找;

我一开始选择的是第一种源码编译安装,我选择的是4.x版本,依赖Python2、pip、setuptools、scons等一堆环境。顺便提一句,MongoDB 3.x、4.x都依赖Python2,MongoDB 5.x、6.x依赖Python3编译安装。在安装依赖过程中遇到了各种报错,只能不断查看日志以及在网上搜索各种解决办法,但是解决了问题A,问题B又冒出来了,就这样层出不穷,有时候一个问题会卡半天。索性我就放弃了,转而选择第3种采用在线下载安装的方式,本文也主要是记录这种方式的安装过程。

一、前置准备过程

1.安装依赖包

我选择安装的是5.0.6版本,依赖libcurl4和openssl这两个库,需要先安装依赖库:

sudo apt-get install libcurl4 openssl

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

2.导入MongoDB5.0版的公钥

如果安装的是6.0版本,就把命令中的版本号5.0改为6.0即可,成功的话会返回一个OK。

wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add -

检查公钥是否导入成功

apt-key list

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

3.导入软件包资源链接

向APT导入MongoDB5.0版软件包的资源链接,如果安装的是6.0版本,就把命令中的版本号5.0改为6.0即可。

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

4.更新apt资源

sudo apt-get update

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

二、安装mongodb5.0

1.在线安装各个相关组件

sudo apt-get install -y mongodb-org=5.0.6 mongodb-org-server=5.0.6 mongodb-org-shell=5.0.6 mongodb-org-mongos=5.0.6 mongodb-org-tools=5.0.6

以下为下载过程,时间可能会比较长,也和网络有关

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

2.手动安装已下载的文件

软件都已经下载完成,但是在最后安装的时候报错了:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

在网上搜索、试验了很多种方法都没用,最后在一篇博文中找到如下方式解决问题:

参考:blog.csdn.net/qq_44866828…

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

安装指定包裹内的deb文件,并强制覆盖:

sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

出现如下提示表示安装成功:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

3.更改MongoDB配置文件:

  • 默认安装目录:/var/lib/mongodb
  • 默认数据目录:/var/lib/mongodb
  • 配置文件路径:/etc/mongod.conf
  • 默认日志目录:/var/log/mongodb/mongod.log

/etc/mongod.conf 默认配置如下,如有需要可以进行更改:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

配置解读:

# Where and how to store data.
storage:
  dbPath: /var/lib/mongodb  # 数据存储目录
  journal:
    enabled: true  # 启用日志文件,默认开启
#  engine:
#  wiredTiger:

# where to write logging data.
systemLog:
  destination: file
  logAppend: true  # 采用追加模式写入日志,默认开启
  path: /var/log/mongodb/mongod.log  # 日志存储路径

# network interfaces
net:
  port: 27017  # 端口号
  bindIp: 127.0.0.1  # 网络地址


# how the process runs
processManagement:
  timeZoneInfo: /usr/share/zoneinfo

4.启动MongoDB

sudo systemctl daemon-reload  # 重新加载系统服务配置
sudo systemctl start mongod  # 启动MongoDB服务
sudo systemctl status mongod  # 查看MongoDB运行状态

MongoDB为激活状态:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

此时我们也可以通过ps命令查看是否存在MongoDB相关进程:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

5.连接MongoDB(登录)

通过这种方式安装的可执行脚本文件都在/usr/bin下国产麒麟V10操作系统(arm64架构)安装mongodb纪实

所以可以在命令行直接运行mongo命令,可以看到,MongoDB版本为5.0.6:

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

6.测试一下MongoDB

登录MongoDB后,在MongoDB的shell下运行:

show dbs  # 查看数据库列表
use test  # 切换到test数据库,不存在会新建,但是要创建数据后才会生效
db.createCollection("TestCollection")  # 在test数据库下创建一个名为TestCollection的数据表
db.TestCollection.insert({"name":"test-user","age":"28","city":"beijing"})  # 插入一条数据
db.TestCollection.find()  # 查看TestCollection数据表的所有数据

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

7.通过工具连接MongoDB

连接配置

① SSH配置

由于我的是部署在外网,所以需要SSH进行跳转。主机就是IP地址,端口号填写能连接到该主机的SSH端口号。

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

② 常规配置

主机地址为localhost,端口27017,如果没更改过的话。

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

查看数据

可以看到前面在shell下创建的数据库、表、数据都存在。

国产麒麟V10操作系统(arm64架构)安装mongodb纪实

小结

以上就是在arm64架构的国产麒麟V10操作系统上安装MongoDB的全过程。国产操作系统据听说还有银河麒麟、中标麒麟,后来合并了。除此之外还有龙芯系统、龙芯架构的麒麟系统,呃......眼花缭乱。总之不同的系统架构安装方式也各不一样。个人感觉还是CentOS搞起来最简单。