在CentOS?7上安裝MongoDB數(shù)據(jù)庫(kù)的方法步驟
簡(jiǎn)介
MongoDB 是一個(gè)免費(fèi)、開源的面向文檔的數(shù)據(jù)庫(kù)。它被歸類為 NoSQL 數(shù)據(jù)庫(kù),因?yàn)樗灰蕾囉趥鹘y(tǒng)的基于表的關(guān)系數(shù)據(jù)庫(kù)結(jié)構(gòu)。相反,它使用具有動(dòng)態(tài)模式的類似 JSON 的文檔。與關(guān)系數(shù)據(jù)庫(kù)不同,MongoDB 在向數(shù)據(jù)庫(kù)添加數(shù)據(jù)之前不需要預(yù)定義模式。您可以隨時(shí)和任意次數(shù)地更改模式,而無(wú)需設(shè)置具有更新后模式的新數(shù)據(jù)庫(kù)。
在本教程中,您將在 CentOS 7 服務(wù)器上安裝 MongoDB 社區(qū)版。
先決條件
在按照本教程之前,請(qǐng)確保您擁有:
- 一個(gè)具有非 root
sudo
權(quán)限的 CentOS 7 服務(wù)器。有關(guān)指導(dǎo),請(qǐng)參閱我們的教程《在 CentOS 7 上進(jìn)行初始服務(wù)器設(shè)置》。
步驟 1 – 添加 MongoDB 倉(cāng)庫(kù)
mongodb-org
軟件包在 CentOS 的默認(rèn)倉(cāng)庫(kù)中不存在。但是,MongoDB 維護(hù)了一個(gè)專用的倉(cāng)庫(kù)。讓我們將其添加到我們的服務(wù)器上。
使用 vi
編輯器,為 CentOS 的軟件包管理實(shí)用程序 yum
創(chuàng)建一個(gè) .repo
文件:
sudo vi /etc/yum.repos.d/mongodb-org.repo
然后,訪問(wèn) MongoDB 文檔的 Red Hat 安裝部分,并將最新穩(wěn)定版本的倉(cāng)庫(kù)信息添加到文件中:
[mongodb-org-6.0] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/6.0/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-6.0.asc
通過(guò)按 ESC
鍵保存文件更改,然后輸入 :wq
,并按 ENTER
鍵。
在繼續(xù)之前,您應(yīng)該驗(yàn)證 MongoDB 倉(cāng)庫(kù)是否存在于 yum
實(shí)用程序中。repolist
命令顯示已啟用的倉(cāng)庫(kù)列表:
yum repolist
. . . repo id repo name base/7/x86_64 CentOS-7 - Base extras/7/x86_64 CentOS-7 - Extras mongodb-org-6.0/7/x86_64 MongoDB Repository updates/7/x86_64 CentOS-7 - Updates . . .
有了 MongoDB Repository
,您可以繼續(xù)進(jìn)行安裝。
步驟 2 – 安裝 MongoDB
您可以使用 yum
實(shí)用程序從第三方倉(cāng)庫(kù)安裝 mongodb-org
軟件包。
sudo yum install mongodb-org
會(huì)有兩個(gè) Is this ok [y/N]:
提示。第一個(gè)允許安裝 MongoDB 軟件包,第二個(gè)導(dǎo)入 GPG 密鑰。MongoDB 的發(fā)布者使用密鑰來(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
命令請(qǐng)求 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
在執(zhí)行 start
命令后,systemctl
實(shí)用程序沒(méi)有提供結(jié)果,但您可以通過(guò)使用 tail
命令查看 mongod.log
文件的末尾來(lái)檢查服務(wù)是否已啟動(dòng):
sudo tail /var/log/mongodb/mongod.log
. . . [initandlisten] waiting for connections on port 27017
等待連接 的輸出確認(rèn)了 MongoDB 已成功啟動(dòng),并且您可以使用 MongoDB Shell 訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器:
mongo
要了解如何從 shell 與 MongoDB 交互,您可以查看 db.help()
方法的輸出,該方法提供了 db
對(duì)象的方法列表。
db.help()
DB methods: db.adminCommand(nameOrDocument) - 切換到 'admin' 數(shù)據(jù)庫(kù),并運(yùn)行命令 [ 僅調(diào)用 db.runCommand(...) ] db.auth(username, password) db.cloneDatabase(fromhost) db.commandHelp(name) 返回命令的幫助 db.copyDatabase(fromdb, todb, fromhost) db.createCollection(name, { size : ..., capped : ..., max : ... } ) db.createUser(userDocument) db.currentOp() 顯示數(shù)據(jù)庫(kù)中當(dāng)前正在執(zhí)行的操作 db.dropDatabase() . . .
讓 mongod
進(jìn)程在后臺(tái)運(yùn)行,但使用 exit
命令退出 shell:
exit
Bye
步驟 3 – 驗(yàn)證啟動(dòng)
由于一個(gè)依賴數(shù)據(jù)庫(kù)的應(yīng)用程序在沒(méi)有數(shù)據(jù)庫(kù)的情況下無(wú)法正常運(yùn)行,我們將確保 MongoDB 守護(hù)程序 mongod
會(huì)隨系統(tǒng)啟動(dòng)而啟動(dòng)。
使用 systemctl
實(shí)用程序來(lái)檢查其啟動(dòng)狀態(tài):
systemctl is-enabled mongod; echo $?
輸出為零表示已啟用守護(hù)程序,這是我們想要的。而輸出為一則表示守護(hù)程序被禁用,將不會(huì)啟動(dòng)。
. . . enabled 0
如果守護(hù)程序被禁用,使用 systemctl
實(shí)用程序來(lái)啟用它:
sudo systemctl enable mongod
現(xiàn)在你已經(jīng)有一個(gè)運(yùn)行中的 MongoDB 實(shí)例,它將在系統(tǒng)重新啟動(dòng)后自動(dòng)啟動(dòng)。
步驟 4 – 導(dǎo)入示例數(shù)據(jù)集(可選)
與其他數(shù)據(jù)庫(kù)服務(wù)器不同,MongoDB 不會(huì)在其 test
數(shù)據(jù)庫(kù)中提供數(shù)據(jù)。由于我們不希望使用生產(chǎn)數(shù)據(jù)來(lái)嘗試新軟件,我們將從 MongoDB 示例中下載一個(gè)樣本數(shù)據(jù)集。這個(gè) JSON 文檔包含了一組餐館數(shù)據(jù),我們將用它來(lái)練習(xí)與 MongoDB 的交互,并避免對(duì)敏感數(shù)據(jù)造成傷害。
首先進(jìn)入一個(gè)可寫目錄:
cd /tmp
使用 curl
命令和 MongoDB 的鏈接來(lái)下載 JSON 文件:
curl -LO https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json
mongoimport
命令將數(shù)據(jù)插入到 test 數(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ù):
connected to: localhost imported 25359 documents
有了樣本數(shù)據(jù)集,你可以對(duì)其執(zhí)行查詢。
重新啟動(dòng) MongoDB Shell:
mongo
Shell 默認(rèn)選擇 test
數(shù)據(jù)庫(kù),這就是你導(dǎo)入數(shù)據(jù)的地方。
使用 find()
方法查詢 restaurants 集合,以顯示數(shù)據(jù)集中所有餐館的列表。由于集合包含超過(guò) 25,000 條記錄,使用可選的 limit()
方法將查詢的輸出減少到指定數(shù)量。此外,pretty()
方法通過(guò)換行和縮進(jìn)使信息更易讀。
db.restaurants.find().limit(1).pretty()
{ "_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
Bye
結(jié)論
在本教程中,你向 yum
添加了一個(gè)第三方存儲(chǔ)庫(kù),安裝了 MongoDB 數(shù)據(jù)庫(kù)服務(wù)器,導(dǎo)入了一個(gè)樣本數(shù)據(jù)集,并執(zhí)行了一個(gè)簡(jiǎn)單的查詢。MongoDB 還有很多其他用途,比如創(chuàng)建帶有 collections
的數(shù)據(jù)庫(kù),填充數(shù)據(jù)庫(kù)的許多 documents
,以及構(gòu)建強(qiáng)大的應(yīng)用程序。要了解更多關(guān)于 MongoDB 的信息,請(qǐng)查看我們的系列教程《如何使用 MongoDB 管理數(shù)據(jù)庫(kù)》或者我們的其他 MongoDB 教程。
到此這篇關(guān)于在CentOS 7上安裝MongoDB數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)CentOS 7安裝MongoDB內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
關(guān)于MongoDB數(shù)據(jù)庫(kù)核心概念
這篇文章主要介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)核心概念,MongoDB由C++語(yǔ)言編寫,是一個(gè)基于分布式文件存儲(chǔ)的開源數(shù)據(jù)庫(kù)系統(tǒng),需要的朋友可以參考下2023-04-04使用aggregate在MongoDB中查詢重復(fù)數(shù)據(jù)記錄的方法
這篇文章主要介紹了使用aggregate在MongoDB中查詢重復(fù)數(shù)據(jù)記錄的方法的相關(guān)資料,需要的朋友可以參考下2016-01-01MongoDB db.serverStatus()輸出內(nèi)容中文注釋
這篇文章主要介紹了MongoDB db.serverStatus()輸出內(nèi)容中文注釋,本文收集了2個(gè)版本的中文注釋來(lái)講解,需要的朋友可以參考下2014-08-08MongoDB的聚合框架Aggregation Framework入門學(xué)習(xí)教程
MongoDB中的聚合aggregate主要用于處理數(shù)據(jù)計(jì)算,這里我們就來(lái)詳細(xì)整理MongoDB的聚合框架Aggregation Framework入門學(xué)習(xí)教程,需要的朋友可以參考下2016-07-07MongoDB數(shù)據(jù)庫(kù)常用28條查詢語(yǔ)句總結(jié)
我們經(jīng)常使用的MySQL是最流行的關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),隨著時(shí)代的進(jìn)步,互聯(lián)網(wǎng)的發(fā)展關(guān)系型數(shù)據(jù)庫(kù)已經(jīng)不滿足于互聯(lián)網(wǎng)的需求,因此出現(xiàn)了非關(guān)系數(shù)據(jù)庫(kù),下面這篇文章主要給大家總結(jié)介紹了關(guān)于MongoDB數(shù)據(jù)庫(kù)常用28條查詢語(yǔ)句,需要的朋友可以參考下2023-05-05