MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫,是目前比較流行的NoSQL數(shù)據(jù)庫之一。也有說它是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的NoSQL數(shù)據(jù)庫。目前最新的版本為4.2.1。
系統(tǒng)環(huán)境
- 操作系統(tǒng)
Ubuntu18.04LTS桌面版,如果沒有,可以參考這里安裝Ubuntu18.04LTS - 輔助工具
Vim文本編輯器,系統(tǒng)自帶,如果沒有安裝,可在終端(可使用快捷鍵Ctrl+Alt+T打開)執(zhí)行以下命令安裝
sudo apt install vim //安裝vim
vim --version //安裝好之后,可以執(zhí)行此命令查看安裝的vim版本
- 網(wǎng)絡(luò)
使用無線Wifi連接網(wǎng)絡(luò)
注意事項
- 防火墻
系統(tǒng)安裝后,如果開啟了防火墻,對于需要進(jìn)行遠(yuǎn)程訪問的軟件如Web應(yīng)用服務(wù)器和數(shù)據(jù)庫等,可能需要設(shè)置防火墻開放對應(yīng)的端口
安裝MongoDB
- 檢查是否已安裝
打開終端,使用以下命令檢查是否已經(jīng)安裝了MongoDB
sudo apt list --installed | grep mongodb
如果已經(jīng)安裝,可以使用以下命令卸載之后重新安裝
sudo apt remove mongodb
sudo apt purge mongodb
- 安裝
首先導(dǎo)入key
wget -qO - https://www.mongodb.org/static/pgp/server-4.2.asc | sudo apt-key add -
如果出現(xiàn)未安裝gnupg錯誤提示,先安裝gnupg或gnupg2,然后再重新導(dǎo)入key
sudo apt-get install gnupg
接著,添加下載源
echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.2.list
然后更新安裝包數(shù)據(jù)庫,開始安裝
sudo apt update
sudo apt install -y mongodb-org //安裝最新穩(wěn)定可用版本
以下是MongoDB安裝好之后,一些重要目錄和文件的存放位置
1). 數(shù)據(jù)文件存放目錄位于/var/lib/mongodb
2). 日志文件存放目錄位于/var/log/mongodb
3). 配置文件位于/etc/mongod.conf
- 驗證
啟動mongodb數(shù)據(jù)庫服務(wù)
sudo systemctl start mongod
以下是一些相關(guān)的操作命令
sudo systemctl status mongod //查看數(shù)據(jù)庫服務(wù)狀態(tài)
sudo systemctl start mongod //啟動mongo數(shù)據(jù)庫服務(wù)
sudo systemctl restart mongod //重啟mongo數(shù)據(jù)庫服務(wù)
sudo systemctl stop mongod //停止mongo數(shù)據(jù)庫服務(wù)
- 配置登陸驗證和遠(yuǎn)程連接
此時,進(jìn)入控制臺或者使用數(shù)據(jù)庫工具連接數(shù)據(jù)庫進(jìn)行相關(guān)操作是不需要登陸認(rèn)證的,下面將配置登陸認(rèn)證和遠(yuǎn)程鏈接。
首先,需要創(chuàng)建一個root角色用戶,作為開啟登陸認(rèn)證后的數(shù)據(jù)庫管理員
mongo //打開控制臺
use admin //切換到admin數(shù)據(jù)庫
db.createUser({user:"admin",pwd:"123456",roles:[{role:"root",db:"admin"}]}); //直接創(chuàng)建一個root角色的用戶admin
exit //退出
接著,使用vim修改配置文件,開啟登陸驗證和遠(yuǎn)程連接
sudo vim /etc/mongod.conf
將bindIp從127.0.0.1改為0.0.0.0
去掉security其面注釋,開啟認(rèn)證authorization,值為 enabled
修改后的配置文件如下

開啟登陸驗證和遠(yuǎn)程鏈接配置
保存退出后,重啟mongod服務(wù)
sudo systemctl restart mongod
- 驗證遠(yuǎn)程連接和登陸認(rèn)證
首先,進(jìn)入控制臺,創(chuàng)建一個可讀寫admin數(shù)據(jù)庫的用戶sqcheng,此時需要使用admin用戶登陸認(rèn)證后才能創(chuàng)建,不進(jìn)行登陸認(rèn)證,將無法創(chuàng)建成功
mongo
use admin //切換到admin數(shù)據(jù)庫,注意,再哪個數(shù)據(jù)庫創(chuàng)建的用戶,就需要到該數(shù)據(jù)庫進(jìn)行登陸認(rèn)證
db.auth("admin","123456") //使用admin用戶認(rèn)證登陸,否則下面的用戶將創(chuàng)建失敗
db.createUser({user:"sqcheng",pwd:"123456",roles:[{role:"readWrite",db:"admin"}]}); //添加一個可讀寫admin數(shù)據(jù)庫的角色用戶sqcheng
exit
然后,使用robo3t進(jìn)行遠(yuǎn)程連接,成功連接,說明配置成功。

robo3t成功連接mongodb