一、連接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
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/550391.html
標籤:其他
