連接MongoDB+Docker安裝MongoDB

来源:https://www.cnblogs.com/kakarotto-chen/archive/2023/04/17/17326698.html
-Advertisement-
Play Games

一、連接MongoDB 工具:==studio 3T== 下載:https://studio3t.com/download-thank-you/?OS=win64 1、無設置密碼 最終成功頁面 2、設置了密碼 後續同1 二、安裝 MongoDB版本:5.0.5 參考: https://www.cnb ...


一、連接MongoDB

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 提供對集群的管理和監控操作。具有此角色的用戶可以訪問configlocal 資料庫,分別用於分片和複製。
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')

image

②、新增資料庫並創建用戶
  • 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

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 資源管理器右鍵添加打開cmd視窗指令 資源管理器空白處右鍵添加打開cmd視窗命令,直接打開cmd並切換到當前目錄 首先刪除該指令 添加該指令條目、名稱,然後添加具體的指令 此.reg文件必須以UTF-8-BOM編碼格式保存,否則無法設置中文名稱 Windows Registry Editor Ver ...
  • linux vi命令詳解 剛開始學著用linux,對vi命令不是很熟,在網上轉接了一篇。 vi編輯器是所有Unix及Linux系統下標準的編輯器,它的強大不遜色於任何最新的文本編輯器,這裡只是簡單地介紹一下它的用法和一小部分指 令。由於 對Unix及Linux系統的任何版本,vi編輯器是完全相同的, ...
  • GMT 和 UTC 時間有何區別?Unix 時間常式為何不處理閏秒?系統時區是如何設置的?哪些時間常式受夏時制影響?localtime 和 gmtime 是否共用內部存儲區?strftime 獲取第幾周使用的 %U/%V/%W 有何區別?linux date 和 mac date 語法有何區別?本文... ...
  • Redis 報錯“OutOfDirectMemoryError(堆外記憶體溢出) ”問題如下: 一、報錯信息: 使用 Redis 的業務介面 ,產生 OutOfDirectMemoryError(堆外記憶體溢出),如圖: 格式化後的報錯信息: { "timestamp": "2023-04-17 22: ...
  • **鎖屏面試題百日百刷,每個工作日堅持更新面試題。**請看到最後就能獲取你想要的, 接下來的是今日的面試題: 1.為什麼kafka可以實現高吞吐?單節點kafka的吞吐量也比其他消息隊列大,為什麼? Kafka是分散式消息系統,需要處理海量的消息,Kafka的設計是把所有的消息都寫入速度低容量大的硬 ...
  • 一、數據持久化之RDB 1、RDB介紹 Redis 資料庫文件,全稱 Redis DataBase,數據持久化方式之一,數據持久化預設方式,按照指定時間間隔,將記憶體中的數據及快照寫入硬碟 定義RDB文件名 dbfilename "dump.rdb" RDB指dump.rdb文件; redis數據每次 ...
  • Redis的Java客戶端 在Redis官網中提供了各種語言的客戶端,地址:Get started using Redis clients | Redis Redis的Java客戶端: 1.Jedis Jedis 的官方地址:redis/jedis: Redis Java client design ...
  • 一、數據類型之列表 列表簡介 Redis的list是一個字元隊列,先進後出,一個key可以有多個值 列表操作 lpush key values [value ...] 將一個或多個值value插入到列表key的表頭,Key不存在,則創建key 127.0.0.1:6379> FLUSHALL OK ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...