起因
阿里雲安裝mongodb4.0或以上版本都有很多人遇到困難,因為這裡有一點是很讓人無法接受的,如果自行手動一步步安裝即很多配置系統環境變量都很難配對,特別是使用service xxx restart 等完美指令在運行期間。而最官方簡單的方法就是apt install了,不過肯定是因為牆的問題大部分人都不太可能直接安裝成功,而換成阿里雲自己的apt源後發現最新版本只到3.6,是不是覺得很酸爽?不知道阿里雲是不是出於想強推自己的mongodb 4.0rc的雲服務庫服務mongodb版所以遲遲不同步官方源過去。
有鑑於此今天我們來做一個相對完美的安裝方法,僅供大家參考學習,畢竟mongodb4.0才開始支持事務,換言之真正能做到把sql數據庫換掉從4.0版本才算達到基本要求。配全lookup來做外表關聯(相當於join)這樣的操作,再配合json schema作數據表結構限制等基本上已經具備了換掉傳統sql數據庫的條件,當然還多了很多nosql自身的優勢。以下是相關官方資料:
mongodb json schema : https://docs.mongodb.com/manual/reference/operator/query/jsonSchema/
mongodb lookup:
https://docs.mongodb.com/manual/reference/operator/aggregation/lookup/
更多相關技術以後再一一祥解。
解決辦法
解決辦法其他是mongodb官方提供了,因為從較早前一段時間開始mongodb官方下載中心已經提供了deb安裝文件的下載類型,這種類型的安裝包其實是linux石像鬼分支的通用安裝包文件類型。我們可以通過下載相關安裝文件,再通過指令執行安裝即可。以下是dpkg指令的相關說明:
dpkg -i package.deb 安裝包 dpkg -r package 刪除包 dpkg -P package 刪除包(包括配置文件) dpkg -L package 列出與該包關聯的文件 dpkg -l package 顯示該包的版本 dpkg –unpack package.deb 解開 deb 包的內容 dpkg -S keyword 搜索所屬的包內容 dpkg -l 列出當前已安裝的包 dpkg -c package.deb 列出 deb 包的內容 dpkg –configure package 配置包
使用示例:sudo dpkg -i xxxxx.deb
操作演練
1.mongodb官方下載中心:
https://www.mongodb.com/download-center/community?jmp=docs
選擇ubuntu 16.04 x64版本,如下圖所示:
下載完成後我們可以通過sftp把deb文件上傳到阿里雲服務器上,然後通過指令:sudo dpkg -i
mongodb-org-server_4.0.6_amd64.deb
2.執行依賴包安裝:
sudo apt-get install libcurl4 openssl
3.執行安裝包:
sudo dpkg -i mongodb-org-server_4.0.6_amd64.deb Selecting previously unselected package mongodb-org-server. (Reading database ... 165879 files and directories currently installed.) Preparing to unpack mongodb-org-server_4.0.6_amd64.deb ... Unpacking mongodb-org-server (4.0.6) ... Setting up mongodb-org-server (4.0.6) ... Adding system user `mongodb' (UID 110) ... Adding new user `mongodb' (UID 110) with group `nogroup' ... Not creating home directory `/home/mongodb'. Adding group `mongodb' (GID 119) ... Done. Adding user `mongodb' to group `mongodb' ... Adding user mongodb to group mongodb Done. Processing triggers for man-db (2.7.5-1) ...
通過指僅查看mongodb是否安裝正常,查看版本號:
mongod -version db version v4.0.6 git version: caa42a1f75a56c7643d0b68d3880444375ec42e3 OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016 allocator: tcmalloc modules: none build environment: distmod: ubuntu1604 distarch: x86_64 target_arch: x86_64
再測試service操作是否正常
service mongod restart
只要沒有報任何錯誤出來即為服務註冊成功安裝正確
再多討論請關注我或留言一起相互學習。謝謝大家支持!