国产麒麟V10操作系统(arm64架构)安装mongodb纪实
前言
这两天在国产麒麟操作系统上安装MongoDB。说实话一开始我没怎么放在心上,毕竟以前在CentOS上通过脚本一键安装、全程只要几十秒。但后续不断踩坑我才发现,这次显然低估了它的难度。
首先系统架构不一样,以前的shell脚本及安装包只适用于X86架构的系统,肯定是行不通了。其次,Ubuntu我也没怎么接触过,听说安装软件是用apt-get而不是yum。没办法,只能硬着头皮上了。
通过下图能够看出,系统是国产麒麟V10SP1操作系统,内核版本为Linux 5.4.18-35-generic,arm64架构:
在网上大概搜索了一圈,没有完全匹配的教程,即:既是国产麒麟V10操作系统,又是基于Ubuntu,还得是arm64架构。但也粗略地了解到有以下几种安装方式:
- 源码编译安装,这种比较灵活,可以自由选择安装core核心服务、只安装server服务端、全量安装;
- 从官网下载安装包、解压安装,但是匹配系统架构以后,发现只有server等可以下载,不够全面:
- 在线下载安装,这种安装出来的也比较全,就是安装目录和配置文件目录看不出来在哪,需要自己找;
我一开始选择的是第一种源码编译安装,我选择的是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
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
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
4.更新apt资源
sudo apt-get update
二、安装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
以下为下载过程,时间可能会比较长,也和网络有关
2.手动安装已下载的文件
软件都已经下载完成,但是在最后安装的时候报错了:
在网上搜索、试验了很多种方法都没用,最后在一篇博文中找到如下方式解决问题:
安装指定包裹内的deb文件,并强制覆盖:
sudo dpkg -i --force-overwrite /var/cache/apt/archives/*.deb
出现如下提示表示安装成功:
3.更改MongoDB配置文件:
- 默认安装目录:/var/lib/mongodb
- 默认数据目录:/var/lib/mongodb
- 配置文件路径:/etc/mongod.conf
- 默认日志目录:/var/log/mongodb/mongod.log
/etc/mongod.conf 默认配置如下,如有需要可以进行更改:
配置解读:
# 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为激活状态:
此时我们也可以通过ps命令查看是否存在MongoDB相关进程:
5.连接MongoDB(登录)
通过这种方式安装的可执行脚本文件都在/usr/bin下
所以可以在命令行直接运行mongo命令,可以看到,MongoDB版本为5.0.6:
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数据表的所有数据
7.通过工具连接MongoDB
连接配置
① SSH配置
由于我的是部署在外网,所以需要SSH进行跳转。主机就是IP地址,端口号填写能连接到该主机的SSH端口号。
② 常规配置
主机地址为localhost,端口27017,如果没更改过的话。
查看数据
可以看到前面在shell下创建的数据库、表、数据都存在。
小结
以上就是在arm64架构的国产麒麟V10操作系统上安装MongoDB的全过程。国产操作系统据听说还有银河麒麟、中标麒麟,后来合并了。除此之外还有龙芯系统、龙芯架构的麒麟系统,呃......眼花缭乱。总之不同的系统架构安装方式也各不一样。个人感觉还是CentOS搞起来最简单。
转载自:https://juejin.cn/post/7226980601539199036