安裝
-
下載MongoDB社區版
https://www.mongodb.com/try/download/community
java
-
上傳至指定目錄,如:
/app/soft
linux -
解壓文件
tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz
web -
修更名字
mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDB
mongodb -
在MongoDB目錄下建立數據目錄及日誌目錄數據庫
[root@oadev soft]# cd MongoDB/ [root@oadev MongoDB]# mkdir -p ./data/db [root@oadev MongoDB]# mkdir ./log
-
在安裝目錄建立MongoDB配置文件
vi mongodb.conf
,內容以下:vim
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添加進環境變量
使用命令編輯配置文件vim /etc/profile
,在最後加入MongoDB的配置export PATH=$PATH:/app/soft/MongoDB/bin
這樣在任何地方均可以經過mongo指令進入命令行界面了。微信
安全配置
經過上面的安裝MongoDB目前還處於裸奔狀態,咱們必須給其配置上用戶密碼認證登陸。首先咱們給MongoDB配置一個超級管理員,操做步驟以下:app
配置超級管理員
-
建立管理員帳號 在任意目錄中輸入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
沒有任何信息 -
使用帳號密碼登陸
> 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' });
執行完成後就能看到數據了。
以上,但願對你有所幫助!
本文分享自微信公衆號 - JAVA日知錄(javadaily)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。