MongoDB環(huán)境準備(Docker)

MongoDB是什么?

MongoDB是由C++語言編寫的,是一個基于分布式文件存儲的開源數據庫系統,在高負載情況下,添加更多節(jié)點,可以保證服務器性能。

MongoDB旨在為WEB應用提供可擴展的高性能數據存儲解決方案。

MongoDB將數據存儲為文檔,數據結構由鍵值(key=>value)對組成。

MongoDB文檔類似于‘JSON’對象。字段值可以包含你其他文檔、數組及文檔數組。

DOCKER部署MongoDB

  1. 獲取對象

    $ docker search mongo  #查詢鏡像
    NAME                                DESCRIPTION                                     STARS               OFFICIAL            AUTOMATED
    mongo                               MongoDB document databases provide high avai…   6480                [OK]                
    mongo-express                       Web-based MongoDB admin interface, written w…   587                 [OK]                
    $ docker pull mongo   #拉取鏡像
     
    
  1. MongoDB配置文件

    在/data/mongodb/configdb/目錄下新建文件 mongodb.conf

    # mongodb.conf
    logappend=true
    # bind_ip=127.0.0.1
    port=27017 
    fork=true
    noprealloc=true
    auth=true
    
  1. 構建MongoDB

    $ docker run \
    --name mongodb_server \ #容器項目名稱
    -p 27017:27017 \ #映射端口,意思是把本地的27017端口映射到容器的27017
    -v /data/mongodb/configdb/:/data/configdb/ \ #數據目錄映射,持久化
    -v /data/mongodb/db/:/data/db/ \ 
    -d mongo -auth # 后臺運行,開啟認證登錄
    
  1. 查看MongoDB進程

    $ docker ps
    

配置admin賬戶信息

  1. 使用admin登錄MongoDB

    $ docker exec -it mongodb_server mongo admin
    
  1. 創(chuàng)建一個admin管理員賬號

    db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase', db:'admin'}]} , { w: "majority" , wtimeout: 5000 })
    

    [圖片上傳失敗...(image-ce15a8-1578558493575)]

  2. MongoDB 用戶權限

    內建的角色

    • 數據庫用戶角色: read、readWrite
    • 數據庫管理角色: dbAdmin、dbOwner、userAdmin
    • 集群管理角色: clusterAdmin、clusterManager、clusterMonitor、hostManger
    • 備份恢復角色:backup、restore
    • 所有數據庫角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    • 超級管理員角色:root
    • 內部角色:__system

    角色說明

    • read:允許用戶讀取指定數據庫
    • readWrite:允許用戶讀寫指定數據庫
    • dbAdmin: 允許用戶在指定數據庫中執(zhí)行管理函數,如索引創(chuàng)建、刪除,查看統計或訪問system.profile
    • userAdmin:允許用戶向system.users集合寫入,可以在指定數據庫中創(chuàng)建、刪除和管理用戶
    • clusterAdmin:只在admin數據庫中可用,賦予用戶所有分片和復制集相關函數的權限
    • readAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀權限
    • readWriteAnyDatabase:只在admin數據庫中可用,賦予用戶所有數據庫的讀寫權限
    • userAdminAnyDatabase:只在admin數據庫可用,賦予用戶所有數據庫的userAdmin權限
    • dbAdminAnyDatabase:只在admin數據庫可用,賦予用戶所有數據庫的dbAdmin權限
    • root:只在admin數據庫中可用,超級賬號,超級權限

?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容