MongoDB是什么?
MongoDB是由C++語言編寫的,是一個基于分布式文件存儲的開源數(shù)據(jù)庫系統(tǒng)酝掩,在高負載情況下,添加更多節(jié)點眷柔,可以保證服務(wù)器性能期虾。
MongoDB旨在為WEB應(yīng)用提供可擴展的高性能數(shù)據(jù)存儲解決方案。
MongoDB將數(shù)據(jù)存儲為文檔驯嘱,數(shù)據(jù)結(jié)構(gòu)由鍵值(key=>value)對組成镶苞。
MongoDB文檔類似于‘JSON’對象。字段值可以包含你其他文檔鞠评、數(shù)組及文檔數(shù)組茂蚓。
DOCKER部署MongoDB
-
獲取對象
$ 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 #拉取鏡像
-
MongoDB配置文件
在/data/mongodb/configdb/目錄下新建文件 mongodb.conf
# mongodb.conf logappend=true # bind_ip=127.0.0.1 port=27017 fork=true noprealloc=true auth=true
-
構(gòu)建MongoDB
$ docker run \ --name mongodb_server \ #容器項目名稱 -p 27017:27017 \ #映射端口,意思是把本地的27017端口映射到容器的27017 -v /data/mongodb/configdb/:/data/configdb/ \ #數(shù)據(jù)目錄映射剃幌,持久化 -v /data/mongodb/db/:/data/db/ \ -d mongo -auth # 后臺運行聋涨,開啟認證登錄
-
查看MongoDB進程
$ docker ps
配置admin賬戶信息
-
使用admin登錄MongoDB
$ docker exec -it mongodb_server mongo admin
-
創(chuàng)建一個admin管理員賬號
db.createUser({user:'admin',pwd:'123456',roles:[{role:'userAdminAnyDatabase', db:'admin'}]} , { w: "majority" , wtimeout: 5000 })
[圖片上傳失敗...(image-ce15a8-1578558493575)]
-
MongoDB 用戶權(quán)限
內(nèi)建的角色
- 數(shù)據(jù)庫用戶角色: read、readWrite
- 數(shù)據(jù)庫管理角色: dbAdmin负乡、dbOwner牛郑、userAdmin
- 集群管理角色: clusterAdmin、clusterManager敬鬓、clusterMonitor淹朋、hostManger
- 備份恢復(fù)角色:backup、restore
- 所有數(shù)據(jù)庫角色: readAnyDatabase钉答、readWriteAnyDatabase础芍、userAdminAnyDatabase、dbAdminAnyDatabase
- 超級管理員角色:root
- 內(nèi)部角色:__system
角色說明
- read:允許用戶讀取指定數(shù)據(jù)庫
- readWrite:允許用戶讀寫指定數(shù)據(jù)庫
- dbAdmin: 允許用戶在指定數(shù)據(jù)庫中執(zhí)行管理函數(shù),如索引創(chuàng)建数尿、刪除仑性,查看統(tǒng)計或訪問system.profile
- userAdmin:允許用戶向system.users集合寫入,可以在指定數(shù)據(jù)庫中創(chuàng)建右蹦、刪除和管理用戶
- clusterAdmin:只在admin數(shù)據(jù)庫中可用诊杆,賦予用戶所有分片和復(fù)制集相關(guān)函數(shù)的權(quán)限
- readAnyDatabase:只在admin數(shù)據(jù)庫中可用歼捐,賦予用戶所有數(shù)據(jù)庫的讀權(quán)限
- readWriteAnyDatabase:只在admin數(shù)據(jù)庫中可用,賦予用戶所有數(shù)據(jù)庫的讀寫權(quán)限
- userAdminAnyDatabase:只在admin數(shù)據(jù)庫可用晨汹,賦予用戶所有數(shù)據(jù)庫的userAdmin權(quán)限
- dbAdminAnyDatabase:只在admin數(shù)據(jù)庫可用豹储,賦予用戶所有數(shù)據(jù)庫的dbAdmin權(quán)限
- root:只在admin數(shù)據(jù)庫中可用,超級賬號淘这,超級權(quán)限