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