安裝
- 下載下傳MongoDB社群版
https://www.mongodb.com/try/download/community

- 上傳至指定目錄,如:
/app/soft
- 解壓檔案
tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz
- 修改名字
mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDB
- 在MongoDB目錄下建立資料目錄及日志目錄
[root@oadev soft]# cd MongoDB/
[root@oadev MongoDB]# mkdir -p ./data/db
[root@oadev MongoDB]# mkdir ./log
- 在安裝目錄建立MongoDB配置檔案
,内容如下:vi mongodb.conf
systemLog:
#MongoDB發送所有日志輸出的目标指定為檔案
destination: file
path: "/app/soft/MongoDB/log/mongodb.log"
logAppend: true
storage:
#mongod執行個體存儲其資料的目錄
dbPath: "/app/soft/MongoDB/data/db"
journal:
#啟用或禁用持久性日志以確定資料檔案保持有效和可恢複。
enabled: true
processManagement:
#啟用在背景運作mongos或mongod程序的守護程序模式。
fork: true
net:
#服務執行個體綁定的IP,預設是localhost
bindIp: 0.0.0.0
port: 27017
配置檔案如果内容不正确會導緻mongodb服務起不起來,mongodb的配置檔案要求k:v這種形式的:後面必須接空格并且檔案中不能有tab縮進,必須是空格縮進
- 啟動MongoDB 進入bin目錄,執行以下指令
./mongod -f /app/soft/MongoDB/mongodb.conf
-
檢視啟動結果
使用指令
驗證是否正常啟動ps aux | grep mongod
或者在bin目錄下執行
./mongo
進入指令行界面
-
将mongdb添加進環境變量
使用指令編輯配置檔案
,在最後加入MongoDB的配置vim /etc/profile
export PATH=$PATH:/app/soft/MongoDB/bin
這樣在任何地方都可以通過mongo指令進入指令行界面了。
安全配置
通過上面的安裝MongoDB目前還處于裸奔狀态,我們必須給其配置上使用者密碼認證登入。首先我們給MongoDB配置一個超級管理者,操作步驟如下:
配置超級管理者
- 建立管理者賬号 在任意目錄中輸入mongo進入指令行界面(之前已經添加過環境變量)
> use admin
switched to db admin
> db.createUser({user:"root",pwd:"xxxxxx",roles:[{role:"root",db:"admin"}]})
使用者添加成功會出現:Successfully added user和添加的使用者資訊。
user : "使用者名",
pwd : "密碼”,
roles:指定使用者的角色,可以用一個空數組給新使用者設定空角色;在roles字段,可以指定内置角色和使用者定義的角色。
注意一點,帳号是跟着庫走的,是以在指定庫裡授權,必須也在指定庫裡驗證(auth)。
2. 開啟權限認證
退出mongodb指令行并修改配置檔案mongodb.conf,在最後開啟權限認證
security:
authorization: enabled
- 重新開機MongoDB,使權限認證生效
- 重新進入mongo指令行,此時可以正常進入,但是不能執行mongo指令,如執行
沒有任何資訊show dbs
3.使用賬号密碼登入
> use admin
switched to db admin
> db.auth("root","xxxxxx")
或直接使用下面指令登入
mongo admin -u root -p xxxxxx
添加資料庫使用者
我們除了需要設定資料庫的超級管理者以外,還可以給每個資料庫設定單獨的管理者。其隻有操作單獨資料的一定權限。
> use accesslog
switched to db accesslog
> db.createUser({
user: 'accesslog', //使用者名
pwd: 'xxxxxx', //密碼
roles:[{
role: 'readWrite', //角色
db: 'accesslog' //資料庫
}]
})
權限相關指令
show users // 檢視目前庫下的使用者
db.dropUser('accesslog') // 删除使用者
db.updateUser('admin', {pwd: 'xxxxxx'}) // 修改使用者密碼
db.auth('admin', 'xxxxxx') // 密碼認證
MongoDB 資料庫預設角色
- 資料庫使用者角色:
read、readWrite
- 資料庫管理角色:
dbAdmin、dbOwner、userAdmin
- 叢集管理角色(admin):
clusterAdmin、clusterManager、clusterMonitor、hostManager
- 備份恢複角色(admin):
backup、restore
- 所有資料庫角色(admin):
readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase
- 超級使用者角色(admin):
root
用戶端連接配接
這裡我們使用 Navicat Premium 15 作為MongoDB用戶端工具,當然也可以使用其他的。
在驗證模式中選擇Password選項後出現使用者名密碼輸入框。
連接配接上後由于沒有集合資料,是以此時看不到集合内容,這裡我們先建立一個查詢并通過如下語句建立一條記錄
use accesslog;
db.gatelog.insert({
title: 'Hello,MongoDB',
by: 'JAVA日知錄',
url: 'http://www.javadaily.cn',
webchat: 'jianzh5'
});
執行完成後就能看到資料了。
以上,希望對你有所幫助!