1. 程式人生 > >Linux安裝與解除安裝MongoDB

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 輸入, echotee 命令可以把內容輸入到檔案中。 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-servermongodb-org-mongosmongodb-org-shellmongodb-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服務

相關閱讀: