Linux安裝與解除安裝MongoDB
p.s. 本文針對64位的linux發行版本。
1. Ubuntu下安裝或解除安裝MongoDB
1.1. 包管理系統APT新增MongoDB公鑰key
使用ubuntu的包管理系統(即dpkg和APT)匯入公鑰:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
任選以上其中一個公鑰, 執行命令回車新增即可。
1.2. 建立MongoDB軟體原始檔
新增MongoDB軟體源:
$ vim /etc/apt/sources.list .d/mongodb.list
mongodb.list
檔案內容由ubuntu的版本決定。 ubuntu版本的命令規則是根據正式版發行的年月命名, ubuntu16.04也就意味著2016年04月發行。 除此之處, 每個版本的ubuntu還有一個用2個英文單片語成的開發代號, 都是動物名稱組成。 安裝軟體源的版本則需要對應一下。
p.s. ubuntu版本每半年(即6個月)釋出一個版本, 每2年釋出一個長期支援LTS(Long Term Support)
版本。
ubuntu12.04版本的代號是穿山甲 Precise Pangolin
, 則輸入內容是:
deb [ arch=amd64 ] https: //repo.mongodb.org/apt/ubuntu precise/mongodb-org/3.6 multiverse
ubuntu14.04版本的代號是塔爾羊 Trusty Tahr
, 則輸入內容是:
deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.6 multiverse
ubuntu16.04版本的代號是地松鼠 Xenial Xerus
, 則輸入內容是:
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu xenial/mongodb -org/3.6 multiverse
p.s. 知道了配置軟體源的原理之後, 這裡提供了一種快速配置的方法, 不需要文字編輯器 vim
輸入, echo
和 tee
命令可以把內容輸入到檔案中。 lsb_release -sc
則可以自動提取版本動物名, 所以以下命令可以替代上面的 vim
輸入內容的方法。
直接輸入命令:
echo "deb https://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
官方MongoDB的軟體源倉庫可以對大陸使用者不太友好, 建議使用阿里雲的MongoDB軟體源倉庫, 執行以下命令:
echo "deb http://mirrors.aliyun.com/mongodb/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.6 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb.list
若想刪除mongodb軟體源, 則直接用rm
命令從軟體源目錄下刪除mongodb.list
, 如下:
$ sudo rm -fr /etc/apt/sources.list.d/mongodb.list
1.3. 更新軟體源
ubuntu的軟體原始檔都存放在目錄 /etc/apt/sources.list.d/
下, 執行以下命令掃描新增的mongodb軟體原始檔mongodb.list
:
$ sudo apt-get update
1.4. 安裝MongoDB
$ sudo apt-get install -y mongodb-org
引數-y
表示yes, 意味著中途不用確認, 直接自動安裝。
1.5. 解除安裝MongoDB
$ sudo service mongod stop
$ sudo apt-get purge mongodb-org*
$ sudo apt-get autoremove
$ sudo rm -r /var/log/mongodb (日誌目錄)
$ sudo rm -r /var/lib/mongodb (資料目錄)
1.6. MongoDB相關說明
- mongodb預設服務名為:
mongod
- mongodb預設的資料檔案目錄為:
/var/lib/mongodb
- mongodb預設的日誌檔案目錄為:
/var/log/mongodb
- mongodb預設的配置檔案為:
/etc/mongod.conf
- mongodb預設的埠為:
27017
- 配置檔案可指定日誌(systemLog.path)和資料檔案目錄(storage.dbPath), 以及埠等。
- mongodb預設的執行日誌檔案:
/var/log/mongodb/mongod.log
1.7. 設定MongoDB服務開機啟動
安裝mongodb3.6版本預設會在目錄/lib/systemd/system/
下建立MongoDB的服務檔案mongod.service
, 如果沒有則手動在/lib/systemd/system/
下建立檔案mongod.service
, 如下:
# cd /lib/systemd/system/
# vim mongod.service
mongod.service
檔案內容如下:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
# file size
LimitFSIZE=infinity
# cpu time
LimitCPU=infinity
# virtual memory size
LimitAS=infinity
# open files
LimitNOFILE=64000
# processes/threads
LimitNPROC=64000
# locked memory
LimitMEMLOCK=infinity
# total threads (user+kernel)
TasksMax=infinity
TasksAccounting=false
# Recommended limits for for mongod as specified in
# http://docs.mongodb.org/manual/reference/ulimit/#recommended-settings
[Install]
WantedBy=multi-user.target
或簡化為:
[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
Documentation=https://docs.mongodb.org/manual
[Service]
User=mongodb
Group=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target
:wq
儲存退出vim編輯檔案mongod.service
, 更新systemctl
服務:
# systemctl daemon-reload
MongoDB的服務名為mongod
, 執行以下命令實現開機啟動:
# systemctl start mongod
# systemctl enable mongod
Created symlink from /etc/systemd/system/multi-user.target.wants/mongod.service to /lib/systemd/system/mongod.service.
$ sudo update-rc.d -f mongod defaults
檢測MongoDB服務mongod
是否以埠27017
啟動:
# netstat -plntu
或
# ps aux|grep mongod
或
# lsof -i:27017
或
# pgrep mongo -l # 注意:-l是英文字母l,不是阿拉伯數字1, 顯示程序號和程序名
1095 mongod
檢視MongoDB版本:
$ mongod --version
db version v3.6.2
git version: 489d177dbd0f0420a8ca04d39fd78d0a2c539420
OpenSSL version: OpenSSL 1.0.2g 1 Mar 2016
allocator: tcmalloc
modules: none
build environment:
distmod: ubuntu1604
distarch: x86_64
target_arch: x86_64
刪除mongod開機啟動執行命令:
$ sudo update-rc.d -f mongod remove
2. Centos下安裝或解除安裝MongoDB
2.1. 安裝MongoDB
當前最新穩定版本為3.6.5
, 則選擇安裝最新穩定版的mongodb
安裝mongodb, 會安裝軟體包mongodb-org
及其依賴包mongodb-org-server
、mongodb-org-mongos
、mongodb-org-shell
、mongodb-org-tools
。
建立MongoDB軟體原始檔 /etc/yum.repos.d/mongodb-org-3.6.repo
, 其內容為:
[mongodb-org-3.6]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc
更新yum快取, 並安裝mongodb
$ sudo yum update
$ sudo yum install -y mongodb-org
$ mongo --version
MongoDB shell version v3.6.5
git version: a20ecd3e3a174162052ff99913bc2ca9a839d618
OpenSSL version: OpenSSL 1.0.1e-fips 11 Feb 2013
allocator: tcmalloc
modules: none
build environment:
distmod: rhel70
distarch: x86_64
target_arch: x86_64
2.2. 解除安裝MongoDB
$ sudo systemctl stop mongod // sudo service mongod stop
$ sudo yum erase $(rpm -qa | grep mongodb-org)
$ sudo rm -r /var/log/mongodb
$ sudo rm -r /var/lib/mongo
2.3. 設定MongoDB服務開機啟動
$ sudo chkconfig mongod on
or
$ sudo systemctl enable mongod
2.4. mongodb服務管理
$ sudo systemctl start mongod // 開啟mongod服務
$ sudo systemctl restart mongod // 重啟mongod服務
$ sudo systemctl stop mongod // 停止mongod服務
相關閱讀: