MongoDB安裝組態(Ubuntu)


本教學將介紹和演示如何在.deb包上的LTS Ubuntu Linux系統上安裝 MongoDB 社群版。 雖然 Ubuntu 包含自己的 MongoDB 軟體包,但官方 MongoDB 社群版軟體包通常是更新的。

平台支援:MongoDB僅提供64位元LTS(長期支援)Ubuntu版本的軟體包。 例如,12.04 LTS(精確),14.04 LTS(可信賴),16.04 LTS(xenial)等。 這些軟體包可能與其他Ubuntu版本一起使用,但是它們不受支援。

mongodb-org-server 包提供了一個使用 /etc/mongod.conf 組態檔案啟動 mongod 的初始化指令碼。

這些包與Ubuntu提供的 mongodbmongodb-servermongodb-clients 包衝突。由軟體包提供的預設的 /etc/mongod.conf 組態檔案的 bind_ip 預設設定為 127.0.0.1 。 在初始化副本集之前,根據環境的需要修改此設定。

MongoDB僅提供 64位元LTS(長期支援)Ubuntu版本的軟體包。 例如,12.04 LTS14.04 LTS16.04 LTS(xenial)等。這些軟體包可能與其他 Ubuntu 版本一起使用,但是它們不受支援。

1.安裝MongoDB社群版

下面我們來看看在 Ubuntu(16.04 LTS) 上安裝 MongoDB 的步驟 -

第一步:匯入包管理系統使用的公鑰

Ubuntu軟體包管理工具(即dpkgapt)通過要求分銷商使用GPG金鑰對軟體包進行簽名來確保軟體包的一致性和真實性。發出以下命令匯入MongoDB公共GPG金鑰

$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

第二步:為MongoDB建立一個列表檔案

首先要確定所使用的Ubuntu系統的版本,要檢視當前的核心版本,請開啟終端並鍵入uname -r命令以檢視核心版本:

檢視核心版本命令如下:

yiibai@ubuntu:~$ uname -r
4.4.0-31-generic
yiibai@ubuntu:~$

檢視作業系統是32位元還是64位元:

yiibai@ubuntu:~$ sudo uname --m
[sudo] password for yiibai:
x86_64
yiibai@ubuntu:~$

檢視 Ubuntu 版本 -

yiibai@ubuntu:~$ sudo lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 16.04.1 LTS
Release:        16.04
Codename:       xenial
yiibai@ubuntu:~$

使用適合您的Ubuntu版本的命令建立 /etc/apt/sources.list.d/mongodb-org-3.4.list 列表檔案:

Ubuntu 14.04

$ echo "deb [ arch=amd64 ] http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Ubuntu 16.04

$ echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

第三步:重新載入本地包資料庫

發出以下命令重新載入本地軟體包資料庫:

$ sudo apt-get update

注意:上面的安裝過程可能會比較久,如果你的網路比較慢,請耐心一點等待吧。

遇到問題:

第四步:安裝MongoDB包

安裝最新的穩定版本的MongoDB。發出以下命令:

$ sudo apt-get install -y mongodb-org

2.執行MongoDB

大多數類Unix作業系統限制對談,因為它們可能使用的系統資源。 這些限制可能會對 MongoDB 操作產生負面影響。 有關詳細資訊,請參閱UNIX ulimit設定

MongoDB 範例預設將其資料檔案儲存在 /var/lib/mongodb 及其紀錄檔檔案在 /var/log/mongodb 中,並使用 mongodb 使用者帳戶執行。可以在 /etc/mongod.conf 中指定備用紀錄檔和資料檔案目錄。有關其他資訊,請參閱 systemLog.pathstorage.dbPath

如果更改執行 MongoDB 進程的使用者,則可通過修改 /var/lib/mongodb/var/log/mongodb 目錄的存取控制許可權,以使該使用者能夠存取這些目錄。

啟動 MongoDB

發出以下命令啟動 mongodb:

$ sudo service mongod start

驗證MongoDB是否已成功啟動

通過檢查 /var/log/mongodb/mongod.log 中的紀錄檔檔案的內容來驗證 mongod 進程是否已成功啟動,日記檔案中應該有類似下面的行內容 -

... 
2017-06-28T21:17:26.292-0700 I CONTROL  [initandlisten]
2017-06-28T21:17:26.341-0700 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/var/lib/mongodb/diagnostic.data'
2017-06-28T21:17:26.366-0700 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-06-28T21:17:26.366-0700 I INDEX    [initandlisten]          building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-06-28T21:17:26.367-0700 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-06-28T21:17:26.368-0700 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-06-28T21:17:26.368-0700 I NETWORK  [thread1] waiting for connections on port 27017

使用 MongoDB 命令測試 -

yiibai@ubuntu:~$ mongo
MongoDB shell version v3.4.5
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.5
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
        http://docs.mongodb.org/
Questions? Try the support group
        http://groups.google.com/group/mongodb-user
Server has startup warnings:
2017-06-28T21:17:26.133-0700 I STORAGE  [initandlisten]
2017-06-28T21:17:26.133-0700 I STORAGE  [initandlisten] ** WARNING: Using   ..... .....
mm/transparent_hugepage/defrag is 'always'.
2017-06-28T21:17:26.292-0700 I CONTROL  [initandlisten] **        We suggest set                                                                                        ting it to 'never'
2017-06-28T21:17:26.292-0700 I CONTROL  [initandlisten]
## 使用幾個命令
> show dbs
admin  0.000GB
local  0.000GB
>
> db
test
> use test
switched to db test
>

停止MongoDB

根據需要,可以通過發出以下命令來停止 mongod 進程:

$ sudo service mongod stop

重新啟動MongoDB

發出以下命令重新啟動 mongod:

$ sudo service mongod restart