天天看點

實戰 | MongoDB的安裝配置

安裝

  1. 下載下傳MongoDB社群版

    https://www.mongodb.com/try/download/community

實戰 | MongoDB的安裝配置
  1. 上傳至指定目錄,如:

    /app/soft

  1. 解壓檔案

    tar -zxvf mongodb-linux-x86_64-rhel62-4.4.4.tgz

  1. 修改名字

    mv mongodb-linux-x86_64-rhel62-4.4.4 MongoDB

  1. 在MongoDB目錄下建立資料目錄及日志目錄
[root@oadev soft]# cd MongoDB/
[root@oadev MongoDB]# mkdir -p ./data/db
[root@oadev MongoDB]# mkdir ./log      
實戰 | MongoDB的安裝配置
  1. 在安裝目錄建立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縮進,必須是空格縮進
  1. 啟動MongoDB 進入bin目錄,執行以下指令

    ./mongod -f /app/soft/MongoDB/mongodb.conf

實戰 | MongoDB的安裝配置
  1. 檢視啟動結果

    使用指令

    ps aux | grep mongod

    驗證是否正常啟動
實戰 | MongoDB的安裝配置

或者在bin目錄下執行

./mongo

進入指令行界面

實戰 | MongoDB的安裝配置
  1. 将mongdb添加進環境變量

    使用指令編輯配置檔案

    vim /etc/profile

    ,在最後加入MongoDB的配置

    export PATH=$PATH:/app/soft/MongoDB/bin

實戰 | MongoDB的安裝配置

這樣在任何地方都可以通過mongo指令進入指令行界面了。

安全配置

通過上面的安裝MongoDB目前還處于裸奔狀态,我們必須給其配置上使用者密碼認證登入。首先我們給MongoDB配置一個超級管理者,操作步驟如下:

配置超級管理者

  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,使權限認證生效
  1. 重新進入mongo指令行,此時可以正常進入,但是不能執行mongo指令,如執行

    show dbs

    沒有任何資訊
實戰 | MongoDB的安裝配置

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

  1. 資料庫管理角色:

    dbAdmin、dbOwner、userAdmin

  1. 叢集管理角色(admin):

    clusterAdmin、clusterManager、clusterMonitor、hostManager

  1. 備份恢複角色(admin):

    backup、restore

  1. 所有資料庫角色(admin):

     readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、 dbAdminAnyDatabase

  1. 超級使用者角色(admin):

    root

用戶端連接配接

這裡我們使用 Navicat Premium 15 作為MongoDB用戶端工具,當然也可以使用其他的。

實戰 | MongoDB的安裝配置

在驗證模式中選擇Password選項後出現使用者名密碼輸入框。

連接配接上後由于沒有集合資料,是以此時看不到集合内容,這裡我們先建立一個查詢并通過如下語句建立一條記錄

use accesslog;
db.gatelog.insert({
    title: 'Hello,MongoDB',   
    by: 'JAVA日知錄',
    url: 'http://www.javadaily.cn',
    webchat: 'jianzh5'
});      
實戰 | MongoDB的安裝配置

執行完成後就能看到資料了。

實戰 | MongoDB的安裝配置

以上,希望對你有所幫助!