日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

mongodb大法好,社區(qū)版在CentOS7云服務(wù)器上的安裝教程

 92讀書(shū) 2019-12-05

MongoDB是由C++語(yǔ)言編寫的,是一個(gè)基于分布式文件存儲(chǔ)的開(kāi)源數(shù)據(jù)庫(kù)系統(tǒng)。

在高負(fù)載的情況下,添加更多的節(jié)點(diǎn),可以保證服務(wù)器性能。本文是講述把MongoDB社區(qū)版安裝到新睿云CentOS7服務(wù)器上,按照AGPL的要求,社區(qū)版自用免費(fèi),如果要分發(fā)是必須使用企業(yè)版的。

一、添加MongoDB資料庫(kù)

mongodb-org默認(rèn)情況下該軟件包不存在CentOS7的源倉(cāng)庫(kù)中。所以我們需要把其先放到倉(cāng)庫(kù)中。

使用vi編輯器為創(chuàng)建.repo文件yum,為CentOS的軟件包管理實(shí)用程序:

sudo vi/etc/yum.repos.d/mongodb-org.repo

然后,訪問(wèn)MongoDB文檔的“在Red Hat上安裝”部分,并添加資料庫(kù)該文件的最新穩(wěn)定版本的信息:

/etc/yum.repos.d/mongodb-org.repo

[mongodb-org-3.4]

name=MongoDB Repository

baseurl=https://repo./yum/redhat/$releasever/mongodb-org/3.4/x86_64/

gpgcheck=1

enabled=1

gpgkey=https://www./static/pgp/server-3.4.asc

保存并關(guān)閉文件。

在繼續(xù)之前,我們應(yīng)該驗(yàn)證MongoDB資料庫(kù)yum實(shí)用程序中存在。該repolist命令顯示已啟用的列表倉(cāng)庫(kù):

yum repolist

Output

...

repo id repo name

base/7/x86_64 CentOS-7-Base

extras/7/x86_64 CentOS-7-Extras

mongodb-org-3.2/7/x86_64 MongoDB Repository

updates/7/x86_64 CentOS-7-Updates

...

隨著MongoDB Repository到位,讓我們繼續(xù)安裝。

二、安裝MongoDB數(shù)據(jù)庫(kù)

我們可以mongodb-org從第三方安裝軟件包資料庫(kù)使用該yum實(shí)用程序。

sudo yum install mongodb-org

有兩個(gè)Is this ok[y/N]:提示。第一個(gè)允許安裝MongoDB軟件包,第二個(gè)允許導(dǎo)入GPG密鑰。MongoDB的發(fā)布者對(duì)其軟件進(jìn)行簽名,并yum使用密鑰來(lái)確認(rèn)所下載軟件包的完整性。在每個(gè)提示下,鍵入Y,然后ENTER按鍵。

接下來(lái),使用該systemctl實(shí)用程序啟動(dòng)MongoDB服務(wù):

sudo systemctl start mongod

盡管我們不會(huì)在本教程中使用它們,但是您也可以使用reload和stop命令更改MongoDB服務(wù)的狀態(tài)。

該reload命令要求mongod進(jìn)程讀取配置文件/etc/mongod.conf,并應(yīng)用任何更改而無(wú)需重新啟動(dòng)。

sudo systemctl reload mongod

該stop命令將暫停所有正在運(yùn)行的mongod進(jìn)程。

sudo systemctl stop mongod

該systemctl實(shí)用程序在執(zhí)行start命令后沒(méi)有提供結(jié)果,但是我們可以通過(guò)mongod.log使用以下tail命令查看文件末尾來(lái)檢查服務(wù)是否已啟動(dòng):

sudo tail/var/log/mongodb/mongod.log

Output

...

[initandlisten]waiting for connections on port 27017

等待連接的輸出確認(rèn)MongoDB已成功啟動(dòng),我們可以使用MongoDB Shell訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器:

mongo

注意:?jiǎn)?dòng)MongoDB Shell時(shí),您可能會(huì)看到如下警告:

**WARNING:soft rlimits too low.rlimits set to 4096 processes,64000 files.Number of processes should be at least 32000:0.5 times number of files.

MongoDB是一個(gè)線程化的應(yīng)用程序。它可以啟動(dòng)其他流程來(lái)處理其工作量。該警告指出,要使MongoDB最有效,它的進(jìn)程數(shù)是授權(quán)的加速應(yīng)該是它在任何給定時(shí)間可以打開(kāi)的文件數(shù)量的一半。要解決警告,請(qǐng)通過(guò)編輯文件processes來(lái)更改soft rlimit值:mongod20-nproc.conf

sudo vi/etc/security/limits.d/20-nproc.conf

將以下行添加到文件末尾:

/etc/security/limits.d/20-nproc.conf

...

mongod soft nproc 32000

為了使新限制適用于MongoDB,請(qǐng)使用systemctl實(shí)用程序?qū)⑵渲匦聠?dòng):

sudo systemctl restart mongod

之后,當(dāng)您連接到MongoDB Shell時(shí),該警告應(yīng)該不再存在。

如果要與MongoDB進(jìn)行交互,您截圖使用db.help()方法的輸出,該方法提供了db對(duì)象的方法列表。

db.help()

Output

DB methods:

db.adminCommand(nameOrDocument)-switches to'admin'db,and runs command[just calls db.runCommand(...)]

db.auth(username,password)

db.cloneDatabase(fromhost)

db.commandHelp(name)returns the help for the command

db.copyDatabase(fromdb,todb,fromhost)

db.createCollection(name,{size:...,capped:...,max:...})

db.createUser(userDocument)

db.currentOp()displays currently executing operations in the db

db.dropDatabase()

 

...

讓mongod進(jìn)程在后臺(tái)運(yùn)行,但是使用以下exit命令退出shell:

exit

Output

Bye

三、驗(yàn)證MongoDB啟動(dòng)

如果數(shù)據(jù)庫(kù)安裝失敗,應(yīng)用程序無(wú)法運(yùn)行,所以我們將確保MongoDB守護(hù)程序已經(jīng)啟動(dòng)。

使用該systemctl實(shí)用工具檢查其啟動(dòng)狀態(tài):

systemctl is-enabled mongod;echo$?

輸出為零表示已啟用守護(hù)程序,這樣符合我們的預(yù)期。但是,如果數(shù)據(jù)安裝不完全或者失敗則啟動(dòng)程序可以不會(huì)出現(xiàn)或者殘缺不全。

Output

...

enabled

0

如果啟動(dòng)程序啟動(dòng)但運(yùn)行的不完成,請(qǐng)使用該systemctl實(shí)用工具啟用它:

sudo systemctl enable mongod

現(xiàn)在,我們有了一個(gè)正在運(yùn)行的MongoDB實(shí)例,它將在系統(tǒng)重啟后自動(dòng)啟動(dòng)。

四、導(dǎo)入示例數(shù)據(jù)集(可選)

與其他數(shù)據(jù)庫(kù)服務(wù)器不同,MongoDB的數(shù)據(jù)庫(kù)中沒(méi)有數(shù)據(jù)test測(cè)試數(shù)據(jù)集。因此我們將從“MongoDB入門”文檔的“導(dǎo)入示例數(shù)據(jù)集”部分下載示例數(shù)據(jù)集。JSON文檔集合,我們將使用它們來(lái)練習(xí)與MongoDB的交互并避免對(duì)敏感數(shù)據(jù)造成傷害。

進(jìn)入可寫的目錄:

cd/tmp

使用curl命令和MongoDB中的鏈接下載JSON文件:

curl-LO https://raw./mongodb/docs-assets/primer-dataset/primer-dataset.json

該mongoimport命令會(huì)將數(shù)據(jù)插入測(cè)試數(shù)據(jù)庫(kù)。該--db標(biāo)志定義了要使用的數(shù)據(jù)庫(kù),而--collection標(biāo)志則指定了將信息存儲(chǔ)在數(shù)據(jù)庫(kù)中的位置,并且--file標(biāo)志告訴命令在哪個(gè)文件上執(zhí)行導(dǎo)入操作:

mongoimport--db test--collection restaurants--file/tmp/primer-dataset.json

輸出確認(rèn)從primer-dataset.json文件中導(dǎo)入數(shù)據(jù):

Output

connected to:localhost

imported 25359 documents

放置好樣本數(shù)據(jù)集之后,我們將對(duì)其進(jìn)行查詢。

重新啟動(dòng)MongoDB Shell:

mongo

Shell test默認(rèn)選擇數(shù)據(jù)庫(kù),這是我們導(dǎo)入數(shù)據(jù)的地方。

使用方法查詢餐廳集合,find()以顯示數(shù)據(jù)集中所有餐廳的列表。由于該集合包含超過(guò)25,000個(gè)條目,因此請(qǐng)使用可選limit()方法將查詢的輸出減少到指定的數(shù)量。此外,該pretty()方法使信息更人性化-可讀的與換行符和縮進(jìn)。

db.restaurants.find().limit(1).pretty()

Output

{

"_id":ObjectId("57e0443b46af7966d1c8fa68"),

"address":{

"building":"1007",

"coord":[

-73.856077,

40.848447

],

"street":"Morris Park Ave",

"zipcode":"10462"

},

"borough":"Bronx",

"cuisine":"Bakery",

"grades":[

{

"date":ISODate("2014-03-03T00:00:00Z"),

"grade":"A",

"score":2

},

{

"date":ISODate("2013-09-11T00:00:00Z"),

"grade":"A",

"score":6

},

{

"date":ISODate("2013-01-24T00:00:00Z"),

"grade":"A",

"score":10

},

{

"date":ISODate("2011-11-23T00:00:00Z"),

"grade":"A",

"score":9

},

{

"date":ISODate("2011-03-10T00:00:00Z"),

"grade":"B",

"score":14

}

],

"name":"Morris Park Bake Shop",

"restaurant_id":"30075445"

}

您可以繼續(xù)使用樣本數(shù)據(jù)集來(lái)熟悉自己使用MongoDB或使用以下db.restaurants.drop()方法將其刪除:

db.restaurants.drop()

最后,使用以下exit命令退出shell:

exit

Output

Bye

按照本文示例您可以配置并且應(yīng)用MongoDB,如果您想進(jìn)一步的深入了解更多數(shù)據(jù)庫(kù)的使用辦法可以閱讀《postgresql和mysql:性能、語(yǔ)法、功能有哪些差異?

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多