實戰 | MongoDB的安裝配置

 

安裝

  1. 下載MongoDB社區版
    https://www.mongodb.com/try/download/community java

  2. 上傳至指定目錄,如: /app/softlinux

  3. 解壓文件
    tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgzweb

  4. 修更名字
    mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDBmongodb

  5. 在MongoDB目錄下建立數據目錄及日誌目錄數據庫

[root@oadev soft]# cd MongoDB/
[root@oadev MongoDB]# mkdir -p ./data/db
[root@oadev MongoDB]# mkdir ./log

 

  1. 在安裝目錄建立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縮進,必須是空格縮進
  1. 啓動MongoDB 進入bin目錄,執行如下命令
    ./mongod -f /app/soft/MongoDB/mongodb.conf
    數組

  2. 查看啓動結果
    使用命令 ps aux | grep mongod 驗證是否正常啓動
    或者在bin目錄下執行 ./mongo進入命令行界面 安全

  3. 將mongdb添加進環境變量
    使用命令編輯配置文件 vim /etc/profile,在最後加入MongoDB的配置 export PATH=$PATH:/app/soft/MongoDB/bin
    這樣在任何地方均可以經過mongo指令進入命令行界面了。微信

安全配置

經過上面的安裝MongoDB目前還處於裸奔狀態,咱們必須給其配置上用戶密碼認證登陸。首先咱們給MongoDB配置一個超級管理員,操做步驟以下:app

配置超級管理員

  1. 建立管理員帳號 在任意目錄中輸入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
  1. 重啓MongoDB,使權限認證生效

  2. 從新進入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 數據庫默認角色

  1. 數據庫用戶角色: read、readWrite

  2. 數據庫管理角色: dbAdmin、dbOwner、userAdmin

  3. 集羣管理角色(admin): clusterAdmin、clusterManager、clusterMonitor、hostManager

  4. 備份恢復角色(admin): backup、restore

  5. 全部數據庫角色(admin): readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase

  6. 超級用戶角色(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源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。

相關文章
相關標籤/搜索