一、連接MongoDB 工具:==studio 3T== 下載:https://studio3t.com/download-thank-you/?OS=win64 1、無設置密碼 最終成功頁面 2、設置了密碼 後續同1 二、安裝 MongoDB版本:5.0.5 參考: https://www.cnb ...
一、連接MongoDB
- 工具:studio 3T
- 下載:https://studio3t.com/download-thank-you/?OS=win64
1、無設置密碼
- 最終成功頁面
2、設置了密碼
- 後續同1
二、安裝
-
MongoDB版本:5.0.5
-
參考:
https://www.cnblogs.com/cwp-bg/p/10403327.html
https://blog.csdn.net/weixin_45753881/article/details/126647801
https://www.jianshu.com/p/79caa1cc49a5
1、準備工作
①、創建三個文件夾
# 數據文件夾
mkdir /usr/developSoftware/mongodb/data
# 備份+日誌
mkdir /usr/developSoftware/mongodb/backup
# 配置文件夾
mkdir /usr/developSoftware/mongodb/conf
②、準備配置文件,也可以不准備
touch /usr/developSoftware/mongodb/conf/mongodb.conf
touch /usr/developSoftware/mongodb/backup/log.txt
-
mongodb.conf 放到 /usr/developSoftware/mongodb/conf 下麵
-
mongodb.conf 內容:
#資料庫數據存放目錄
dbpath=/usr/developSoftware/mongodb/data
#資料庫日誌存放目錄
logpath=/usr/developSoftware/mongodb/backup/log.txt
#以追加的方式記錄日誌
logappend = true
#埠號 預設為27017
port=27017
#以後臺方式運行進程
fork=true
#開啟用戶認證
auth=true
2、Docker安裝
2.1、鏡像、容器操作
# 搜索
docker search mongodb
# 拉取鏡像
docker pull mongo
# 查看鏡像
docker images
- 創建和啟動容器
- 重點:記得加:--auth
- 如果不開啟身份驗證後果:①不用賬號密碼,直接可以登陸;②第二天數據會被刪除
# 創建和啟動容器
# 容器命名mymongo,資料庫數據文件掛載到/usr/developSoftware/mongodb/data,備份文件掛載到/usr/developSoftware/mongodb/backup,啟動的配置文件目錄掛載到容器的/usr/developSoftware/mongodb/conf,--auth開啟身份驗證。
docker run -d --name mymongo -p 27017:27017 --restart=always -v /usr/developSoftware/mongodb/data:/data/db -v /usr/developSoftware/mongodb/backup:/data/backup -v /usr/developSoftware/mongodb/conf:/data/configdb -d mongo --auth
- 查看版本
# 進入容器
docker exec -it mymongo /bin/bash
# 查看版本
mongod --version
# 使用MongoDB客戶端進行操作
mongo
> show dbs #查詢所有的資料庫
admin 0.000GB
config 0.000GB
local 0.000GB
> db.version() #查詢版本
5.0.5
2.2、設置密碼登陸
- Mongo提供了一些預設的角色
許可權 | 描述 |
---|---|
read | 允許用戶讀取指定資料庫 |
readWrite | 允許用戶讀寫指定資料庫 |
dbAdmin | 允許用戶在指定資料庫中執行管理函數,如索引創建、刪除,查看統計或訪問 |
dbOwner | 提供該資料庫下所有許可權操作能力。 |
userAdmin | 提供該資料庫下用戶和許可權的創建和修改的操作能力。可以創建dbOwner許可權。 |
clusterAdmin | 提供最大的集群管理訪問。 |
clusterManager | 提供對集群的管理和監控操作。具有此角色的用戶可以訪問config 和local 資料庫,分別用於分片和複製。 |
clusterMonitor | 提供對監控工具的只讀訪問。 |
hostManager | 提供監控和管理能力。 |
backup | 數據備份能力。 |
restore | 數據恢復能力。 |
readAnyDatabase | 只在admin資料庫中可用,賦予用戶所有資料庫的讀許可權 |
readWriteAnyDatabase | 只在admin資料庫中可用,賦予用戶所有資料庫的讀寫許可權 |
userAdminAnyDatabase | 只在admin資料庫中可用,賦予用戶所有資料庫的userAdmin許可權 |
dbAdminAnyDatabase | 只在admin資料庫中可用,賦予用戶所有資料庫的dbAdmin許可權。 |
root | 超級管理員,簡而言之,暢通無阻。 |
①、設置管理賬戶
# 進入amdin資料庫
use admin
- 創建超級管理賬號
# 創建超級許可權root角色的用戶,或者userAdminAnyDatabase 等角色許可權比較大的用戶,我創建的是擁有超級許可權root角色的用戶root
# 用戶名:rootCs,密碼:123rootCs456,角色:root,資料庫:admin
db.createUser({user:'rootCs',pwd:'123rootCs456',roles:[{role:'root',db:'admin'}]})
- 登陸超級管理賬號
# 認證登錄db.auth('用戶名','密碼'),列印1則代表認證通過
db.auth('rootCs','123rootCs456')
②、新增資料庫並創建用戶
- use,切換到指定資料庫。沒有這個資料庫會創建一個。
use myMongo
- 創建用戶:cs,密碼:cs123456
db.createUser({user:"cs", pwd:"cs123456", roles:[{role: "dbOwner", db:"myMongo" }]})
- 登陸/認證用戶
db.auth('cs','cs123456')
- 查看該資料庫下麵的表(數據)
show collections
3、總結
-
如果是雲伺服器(如阿裡雲伺服器),記得開放埠:27017
-
MongoDB 預設直接連接,無須身份驗證,如果當前機器可以公網訪問,且不註意Mongodb 埠(預設 27017)的開放狀態,那麼Mongodb就會產生安全風險。
-
使用URL
# 無賬號密碼
mongodb://yourIp:27017/myMongo
# 有賬號密碼
mongodb://cs:cs123456@yourIp:27017/myMongo