天天看點

國産麒麟V10作業系統(arm64架構)安裝mongodb紀實

作者:大剛測試開發實戰

前言

這兩天接到任務,需要在國産麒麟作業系統上安裝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紀實

在網上搜尋、試驗了很多種方法都沒用,最後在一篇博文中找到如下方式解決問題:

參考:https://blog.csdn.net/qq_44866828/article/details/121141194

國産麒麟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搞起來最簡單。對于CentOS、Linux、Windows如何安裝MongoDB可以參考另一篇文章《測開必備技能之MongoDB的安裝(Windows&Linux&MacOS)》。

繼續閱讀