Linux系統(tǒng)下安裝MongoDB的詳細(xì)方法圖文教程
前言
MongoDB 是一個(gè)基于分布式文件存儲(chǔ)的數(shù)據(jù)庫(kù),主要用于為 web 應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲(chǔ)解決方案。
以下內(nèi)容是如何在 Linux 下搭建單機(jī)版 MongoDB 的教程,主要參照 MongoDB - 學(xué)習(xí)教程
如果想要在 Windows 下安裝 MongoDB ,詳見(jiàn) MongoDB的安裝(詳細(xì)教程)
一、概述
MongoDB 由 C++語(yǔ)言編寫(xiě),是一個(gè)介于關(guān)系型數(shù)據(jù)庫(kù)和非關(guān)系型數(shù)據(jù)之間的產(chǎn)品,是非關(guān)系型數(shù)據(jù)庫(kù)中功能最豐富,最像關(guān)系數(shù)據(jù)庫(kù)的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似與 json
的 bson
格式,因此可以存儲(chǔ)比較復(fù)雜的數(shù)據(jù)類型。MongoDB 最大的特點(diǎn)是它支持的查詢語(yǔ)言非常強(qiáng)大,其語(yǔ)法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z(yǔ)言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)單表查詢的絕大部分功能,而且還支持對(duì)數(shù)據(jù)建立索引。
MongoDB 的設(shè)計(jì)目標(biāo)是高性能、可擴(kuò)展、易部署、易使用,存儲(chǔ)數(shù)據(jù)非常方便。所以它比傳統(tǒng)的關(guān)系數(shù)據(jù)庫(kù),例如 MySQL,更加適合去應(yīng)對(duì)一些 “三高” 需求:比如對(duì)數(shù)據(jù)庫(kù)高并發(fā)的讀寫(xiě)需求、對(duì)海量數(shù)據(jù)的高效率存儲(chǔ)和訪問(wèn)需求以及對(duì)數(shù)據(jù)庫(kù)的高可擴(kuò)展和高可用性的需求。
由此可見(jiàn) MongoDB 的特點(diǎn)如下:
高性能高可用高擴(kuò)展豐富的查詢支持動(dòng)態(tài)模式和靈活的文檔模型
應(yīng)用常見(jiàn)上通常見(jiàn)到的是存儲(chǔ)用戶信息、聊天信息、游戲數(shù)據(jù)、訂單信息等等。之前我們就有使用 MongoDB 存儲(chǔ)一些優(yōu)惠劵的信息,性能上也是非常不錯(cuò)的。
二、下載
官網(wǎng):www.mongodb.com
選擇 Products > Community Edition
就能進(jìn)入社區(qū)版
在這里下載 Linux 版對(duì)應(yīng)的安裝包
在這里直接下載可能會(huì)比較慢,以下我提供了已經(jīng)下載好的安裝包:
鏈接: https://pan.baidu.com/s/1gNhoJc7T1TOKxQfvpHUkwg
提取碼: 8e97
三、安裝與啟動(dòng)
連上 Linux 服務(wù)器(這里的服務(wù)器我用的是云服務(wù)器),我先創(chuàng)建一個(gè) mongodb
的文件夾來(lái)存放安裝包。
# 在 /soft 目錄下創(chuàng)建一個(gè)空的文件夾 mongodb mkdir /soft/mongodb # 進(jìn)入這個(gè)新建的文件夾下 cd /soft/mongodb
然后上傳之前下載好的 Linux 下 MongoDB 的安裝包,使用 rz
命令上次文件(有些終端工具是可以直接上傳文件的,比如 FinalShell)
在該目錄下再創(chuàng)建一個(gè)文件夾,并且將安裝包解壓到該文件夾中
# 在當(dāng)前目錄下(mysql)下創(chuàng)建一個(gè) mongodb-5.0.11 文件夾 mkdir mongodb-5.0.11 # 解壓安裝包到該目錄下 tar -xvf mongodb-linux-x86_64-rhel70-5.0.11.tgz -C mongodb-5.0.11
解壓完成之后可以切換到 mongodb-5.0.11
目錄下查看解壓后的文件
# 進(jìn)入 mongodb-5.0.11 文件夾 cd mongodb-5.0.11 # 進(jìn)入 mongodb-linux-x86_64-rhel70-5.0.11 文件夾 cd mongodb-linux-x86_64-rhel70-5.0.11 # 查看目錄下的文件 ll
可以看到和 windows 下解壓之后的文件是差不多的,bin
目錄下存放的是 MongoDB
的一些命令。
創(chuàng)建與 bin
目錄同級(jí)的 data\db
、log
和 conf
目錄用于存放數(shù)據(jù)和日志
# 創(chuàng)建 data\db 文件夾存放數(shù)據(jù) mkdir -p data/db # 創(chuàng)建 log 文件夾存放日志 mkdir log # 創(chuàng)建 conf 文件夾存放配置文件 mkdir conf
在 log
目錄下創(chuàng)建 mongodb.log
存放日志,在 conf
目錄下創(chuàng)建 mongodb.conf
文件并添加以下配置信息:
# 進(jìn)入 log 目錄 cd log # 創(chuàng)建 mongodb.log 文件 touch mongodb.log # 在 conf 目錄下創(chuàng)建 mongodb.conf 文件并編輯 vi ../conf/mongodb.conf
配置文件:
systemLog: # MongoDB發(fā)送所有日志輸出的目標(biāo)指定為文件 # The path of the log file to which mongod or mongos should send all diagnostic logging information destination: file # mongod或mongos應(yīng)向其發(fā)送所有診斷日志記錄信息的日志文件的路徑 path: "/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/log/mongod.log" # 當(dāng)mongos或mongod實(shí)例重新啟動(dòng)時(shí),mongos或mongod會(huì)將新條目附加到現(xiàn)有日志文件的末尾。 logAppend: true storage: # mongod實(shí)例存儲(chǔ)其數(shù)據(jù)的目錄。storage.dbPath設(shè)置僅適用于mongod。 # The directory where the mongod instance stores its data.Default Value is "/data/db". dbPath: "/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db" journal: #啟用或禁用持久性日志以確保數(shù)據(jù)文件保持有效和可恢復(fù)。 enabled: true processManagement: #啟用在后臺(tái)運(yùn)行mongos或mongod進(jìn)程的守護(hù)進(jìn)程模式。 fork: true net: # 服務(wù)實(shí)例綁定的IP,默認(rèn)是localhost(10.0.4.12:局域網(wǎng)IP) bindIp: localhost,10.0.4.12 # bindIp #綁定的端口,默認(rèn)是27017 port: 27017
進(jìn)入到 bin
目錄下 啟動(dòng) MongoDB
# 以配置文件的形式啟動(dòng)mongod -f ../conf/mongodb.conf
如果在輸入上述命令之后提示:-bash: mongod: command not found
,但是 bin
目錄下又有 mongod
的可執(zhí)行文件,可查看文章末尾 可能會(huì)遇到的問(wèn)題
看到 successfully
就表示啟動(dòng)成功了,forked process:19886
表示該服務(wù)啟動(dòng)的進(jìn)程號(hào)是:19886
,可通過(guò) ps -ef | grep 19886
或者 ps -ef | grep mongod
才看 MongoDB
的運(yùn)行情況。
停止關(guān)閉服務(wù):
方式一:正常流程關(guān)閉:
# 客戶端登錄服務(wù),注意,這里通過(guò)localhost登錄,如果需要遠(yuǎn)程登錄,必須先登錄認(rèn)證才行。 mongo --port 27017 # 關(guān)閉服務(wù) db.shutdownServer()
方式二:快速關(guān)閉:
#通過(guò)進(jìn)程編號(hào)關(guān)閉節(jié)點(diǎn) kill -2 19886
四、連接
登錄客戶端服務(wù),輸入 mongo
命令便可以連接上
mongo
但是通常我們是通過(guò)圖型化工具,遠(yuǎn)程進(jìn)行連接。
一些連接數(shù)據(jù)庫(kù)的圖形化工具也能夠連接 MongoDB,比如 Navicat,Compass
圖形化界面客戶端是能在 MongoDB 官網(wǎng)上找到的。
五、可能會(huì)遇到的問(wèn)題
(1)-bash: mongod: 命令未找到
如果在輸入 mongodb
相關(guān)的命令之后提示:-bash: mongod: command not found
,但是 bin
目錄下又有的可執(zhí)行文件
原因是沒(méi)有將可執(zhí)行文件
添加至 path
,輸入以下命令:
export PATH=/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/bin:$PATH
重新啟動(dòng)下 MongoDB
(2)數(shù)據(jù)損壞重修復(fù)
如果一旦是因?yàn)閿?shù)據(jù)損壞,則需要進(jìn)行如下操作(了解):
刪除lock文件:
# mongodb-data-db-directory 表示 數(shù)據(jù)存放路徑 # 比如:/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db rm -f <mongodb-data-db-directory>/*.lock
修復(fù)數(shù)據(jù):
# mongodb-data-db-directory 表示 數(shù)據(jù)存放路徑 # 比如:/soft/mongodb/mongodb-5.0.11/mongodb-linux-x86_64-rhel70-5.0.11/data/db mongod --repair --dbpath=<mongodb-data-db-directory>
(3)遠(yuǎn)程連接時(shí)出錯(cuò)
這個(gè)錯(cuò)誤提示出現(xiàn)的可能有很多,我就列舉幾個(gè)我能想到的吧
- 首先去檢查你的
MongoDB
是否關(guān)掉了,如果關(guān)了的話重啟再連接 - 服務(wù)器上面的防火墻是否是開(kāi)著的狀態(tài),或者
27017
的端口是否對(duì)外開(kāi)放 - 如果你的服務(wù)器是云服務(wù)器的話,需要去云服務(wù)器上面開(kāi)放
27017
的端口
第一種情況我就不贅述了,如果你的 MongoDB
是安裝在虛擬機(jī)上面的話,簡(jiǎn)單粗暴的方式是直接關(guān)閉防火墻
# 關(guān)閉防火墻 systemctl stop firewalld.service # 查看防火墻的狀態(tài) firewall-cmd --state # 禁止firewall開(kāi)機(jī)啟動(dòng) systemctl disable firewalld.service
或者為了安全,只開(kāi)放特定的端口號(hào),MongoDB
默認(rèn)端口是 27017
# 關(guān)閉防火墻 systemctl stop firewalld.service # 27017 端口對(duì)外開(kāi)放 firewall-cmd --remove-port=27017/tcp --permanent # 重啟防火墻 firewall-cmd --reload
但是,如果你 MongoDB 并不是安裝在虛擬機(jī)上的,而是放到云服務(wù)器上面,那你必須還得在云服務(wù)上面開(kāi)放這幾個(gè)端口
行在 某某云 上面的,我就得做如下設(shè)置:
找到我的服務(wù)器,點(diǎn)擊 更多
,選擇 管理
進(jìn)入下一個(gè)頁(yè)面之后,選擇 防火墻
添加 27017
端口對(duì)外開(kāi)放
測(cè)試連接
到此這篇關(guān)于Linux系統(tǒng)下安裝MongoDB的詳細(xì)方法圖文教程的文章就介紹到這了,更多相關(guān)Linux MongoDB安裝方法內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MongoDB操作之日期轉(zhuǎn)換方式(string、ISODate、時(shí)間戳)
這篇文章主要介紹了MongoDB操作之日期轉(zhuǎn)換方式(string、ISODate、時(shí)間戳),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-07-07centos7防火墻導(dǎo)致java程序訪問(wèn)mongodb3.0.1時(shí)報(bào)錯(cuò)的問(wèn)題分析
這篇文章主要介紹了centos7防火墻導(dǎo)致java程序訪問(wèn)mongodb3.0.1時(shí)報(bào)錯(cuò)的問(wèn)題分析,需要的朋友參考下2017-01-01MongoDB4.28開(kāi)啟權(quán)限認(rèn)證配置用戶密碼登錄功能
這篇文章主要介紹了MongoDB4.28開(kāi)啟權(quán)限認(rèn)證配置用戶名和密碼認(rèn)證登錄,本文分步驟給大家介紹開(kāi)啟認(rèn)證登錄的方法,需要的朋友可以參考下2022-01-01MongoDB社區(qū)版和企業(yè)版的差別對(duì)照表
這篇文章主要介紹了MongoDB社區(qū)版和企業(yè)版的差別對(duì)照表,本文同時(shí)提供了中文和英文版的對(duì)照表,需要的朋友可以參考下2014-10-10在MongoDB中實(shí)現(xiàn)時(shí)間范圍查詢的代碼詳解
MongoDB作為一個(gè)高性能、開(kāi)源、無(wú)模式的文檔型數(shù)據(jù)庫(kù),廣泛應(yīng)用于各種需要靈活數(shù)據(jù)模型的應(yīng)用場(chǎng)景中,在處理與時(shí)間相關(guān)的數(shù)據(jù)時(shí),MongoDB提供了強(qiáng)大的查詢能力,本文將詳細(xì)介紹如何在MongoDB中執(zhí)行時(shí)間范圍查詢,需要的朋友可以參考下2024-08-08