本教程將介紹和演示如何在.deb包上的LTS Ubuntu Linux系統(tǒng)上安裝 MongoDB 社區(qū)版。 雖然 Ubuntu 包含自己的 MongoDB 軟件包,但官方 MongoDB 社區(qū)版軟件包通常是更新的。
平臺(tái)支持:MongoDB僅提供64位LTS(長(zhǎng)期支持)Ubuntu版本的軟件包。 例如,12.04 LTS(精確),14.04 LTS(可信賴),16.04 LTS(xenial)等。 這些軟件包可能與其他Ubuntu版本一起使用,但是它們不受支持。
mongodb-org-server 包提供了一個(gè)使用 /etc/mongod.conf 配置文件啟動(dòng) mongod 的初始化腳本。
這些包與Ubuntu提供的 mongodb,mongodb-server 和 mongodb-clients 包沖突。由軟件包提供的默認(rèn)的 /etc/mongod.conf 配置文件的 bind_ip 默認(rèn)設(shè)置為 127.0.0.1 。 在初始化副本集之前,根據(jù)環(huán)境的需要修改此設(shè)置。
MongoDB僅提供 64位LTS(長(zhǎng)期支持)Ubuntu版本的軟件包。 例如,12.04 LTS,14.04 LTS,16.04 LTS(xenial)等。這些軟件包可能與其他 Ubuntu 版本一起使用,但是它們不受支持。
下面我們來(lái)看看在 Ubuntu(16.04 LTS) 上安裝 MongoDB 的步驟 -
第一步:導(dǎo)入包管理系統(tǒng)使用的公鑰
Ubuntu軟件包管理工具(即dpkg和apt)通過(guò)要求分銷商使用GPG密鑰對(duì)軟件包進(jìn)行簽名來(lái)確保軟件包的一致性和真實(shí)性。發(fā)出以下命令導(dǎo)入MongoDB公共GPG密鑰:
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6
第二步:為MongoDB創(chuàng)建一個(gè)列表文件
首先要確定所使用的Ubuntu系統(tǒng)的版本,要查看當(dāng)前的內(nèi)核版本,請(qǐng)打開(kāi)終端并鍵入uname -r命令以查看內(nèi)核版本:
查看內(nèi)核版本命令如下:
yiibai@ubuntu:~$ uname -r
4.4.0-31-generic
yiibai@ubuntu:~$
查看操作系統(tǒng)是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版本的命令創(chuàng)建 /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
第三步:重新加載本地包數(shù)據(jù)庫(kù)
發(fā)出以下命令重新加載本地軟件包數(shù)據(jù)庫(kù):
$ sudo apt-get update
注意:上面的安裝過(guò)程可能會(huì)比較久,如果你的網(wǎng)絡(luò)比較慢,請(qǐng)耐心一點(diǎn)等待吧。
遇到問(wèn)題:
第四步:安裝MongoDB包
安裝最新的穩(wěn)定版本的MongoDB。發(fā)出以下命令:
$ sudo apt-get install -y mongodb-org
大多數(shù)類Unix操作系統(tǒng)限制會(huì)話,因?yàn)樗鼈兛赡苁褂玫南到y(tǒng)資源。 這些限制可能會(huì)對(duì) MongoDB 操作產(chǎn)生負(fù)面影響。 有關(guān)詳細(xì)信息,請(qǐng)參閱UNIX ulimit設(shè)置。
MongoDB 實(shí)例默認(rèn)將其數(shù)據(jù)文件存儲(chǔ)在 /var/lib/mongodb 及其日志文件在 /var/log/mongodb 中,并使用 mongodb 用戶帳戶運(yùn)行??梢栽?/etc/mongod.conf 中指定備用日志和數(shù)據(jù)文件目錄。有關(guān)其他信息,請(qǐng)參閱 systemLog.path 和 storage.dbPath 。
如果更改運(yùn)行 MongoDB 進(jìn)程的用戶,則可通過(guò)修改 /var/lib/mongodb 和 /var/log/mongodb 目錄的訪問(wèn)控制權(quán)限,以使該用戶能夠訪問(wèn)這些目錄。
啟動(dòng) MongoDB
發(fā)出以下命令啟動(dòng) mongodb:
$ sudo service mongod start
驗(yàn)證MongoDB是否已成功啟動(dòng)
通過(guò)檢查 /var/log/mongodb/mongod.log 中的日志文件的內(nèi)容來(lái)驗(yàn)證 mongod 進(jìn)程是否已成功啟動(dòng),日記文件中應(yīng)該有類似下面的行內(nèi)容 -
...
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 命令測(cè)試 -
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]
## 使用幾個(gè)命令
> show dbs
admin 0.000GB
local 0.000GB
>
> db
test
> use test
switched to db test
>
停止MongoDB
根據(jù)需要,可以通過(guò)發(fā)出以下命令來(lái)停止 mongod 進(jìn)程:
$ sudo service mongod stop
重新啟動(dòng)MongoDB
發(fā)出以下命令重新啟動(dòng) mongod:
$ sudo service mongod restart