mongodb單節點改副本集模式

前一陣將三節點的副本集改成了單節點,但后面業務代碼出現問題:無法使用事務,因為事務只有在副本集上能用,單節點無法使用,故需要改回副本集模式,而我目前僅有一臺服務器,所以考慮在一臺服務器上通過容器部署三節點副本集

version: "3.8"
services:mongo1:image: mongo:5.0.31container_name: mongo1ports:- 27017:27017volumes:- mongo2:/data/db  # 復用你原來的數據command: ["mongod", "--replSet", "rs0", "--bind_ip_all"]mongo2:image: mongo:5.0.31container_name: mongo2ports:- 27018:27017volumes:- mongo2_data2:/data/dbcommand: ["mongod", "--replSet", "rs0", "--bind_ip_all"]mongo3:image: mongo:5.0.31container_name: mongo3ports:- 27019:27017volumes:- mongo2_data3:/data/dbcommand: ["mongod", "--replSet", "rs0", "--bind_ip_all"]volumes:mongo2:         # 原來的數據卷mongo2_data2:mongo2_data3:

這里需要注意,docker volume mongo2是保存有數據的volume,所以你需要把它指定為主節點

>>> docker exec -it mongo1 mongosh
cfg = {_id: "rs0",members: [{ _id: 0, host: "10.6.212.87:27017", priority: 2 },{ _id: 1, host: "10.6.212.87:27018", priority: 1 },{ _id: 2, host: "10.6.212.87:27019", priority: 0 }]
}
rs.reconfig(cfg, { force: true })

還有就是啟動mongo時,如果加上“–auth”參數,會報如下錯誤

Attaching to mongo1, mongo2, mongo3
mongo2  | BadValue: security.keyFile is required when authorization is enabled with replica sets
mongo2  | try 'mongod --help' for more information
mongo1  | BadValue: security.keyFile is required when authorization is enabled with replica sets
mongo1  | try 'mongod --help' for more information
mongo3  | BadValue: security.keyFile is required when authorization is enabled with replica sets
mongo3  | try 'mongod --help' for more information
mongo2 exited with code 2
mongo1 exited with code 2
mongo3 exited with code 2

解決起來有一些麻煩,所以我就干脆把–auth參數去掉了,但會存在安全風險。
還要注意,mongodb比較吃內存,所以在單服務器上要注意內存,不然會被docker停掉。
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/87535.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/87535.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/87535.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Android 修改了頁面的xml布局,使用了databinding,這時候編譯時需要用到apt嗎

deepseek回答: 在 Android 開發中使用 DataBinding 時,不需要顯式使用 apt(Annotation Processing Tool)。以下是詳細說明: 1. DataBinding 的編譯機制 DataBinding 是 Android Gradle 插件原生支持的功能&#xff…

服務器如何從http升級到https(nginx)

1.證書申請 可以到阿里云或者華為云去申請證書,申請完下載證書是個壓縮包,然后解壓 可以到到幾個文件夾,找到 .Nginx 文件夾打開 會有兩個文件,將這兩個文件上傳至nginx/conf/cert文件夾下(cert需要手…

6.19_JAVA_微服務

1、跑后端的時候要把數據庫跑起來,否則會報錯。 2、predicate斷言: 預言:predict 3、gateway:出路口 4、API:List.of("a", "b", "c");把abc編程一個集合。 5、 6、shortcutFieldOrd…

Linux 基礎命令:`ls`、`cd`、`du` 快速入門

在 Linux 系統中,ls、cd 和 du 是日常操作中最常用的三個命令。掌握它們能大幅提升文件管理效率。 1. ls:查看目錄內容 用途:列出當前或指定目錄下的文件和子目錄。 常用命令: ls -l # 詳細列表(權限、大…

408第一季 - 數據結構 - 散列表

散列表 概念 散列表本身就是為了查找 原始人思想 散列表思想 6%5 是 1 1%5 也是1 沖突 沖突怎么辦? 線性探測法 就往后找,1跑到索引為2 然后查找,可以發現,只要沒沖突就只用查找1次 然后你想找10的話,發現索引為0…

Spring Boot 集成 Elasticsearch(含 ElasticsearchRestTemplate 示例)

Elasticsearch 是一個基于 Lucene 的分布式搜索服務器,具有高效的全文檢索能力。在現代應用中,尤其是需要強大搜索功能的系統中,Elasticsearch 被廣泛使用。 Spring Boot 提供了對 Elasticsearch 的集成支持,使得開發者可以輕松地…

CMake實踐:指定gcc版本編譯和交叉編譯

目錄 1.指定gcc版本編譯 1.1.通過CMake參數來實現 1.2.使用 RPATH/RUNPATH 直接指定庫路徑 1.3.使用符號鏈接和 LD_LIBRARY_PATH 1.4.使用 wrapper 腳本封裝 LD_LIBRARY_PATH 2.交叉編譯 2.1.基本用法 2.2.工具鏈文件關鍵配置 2.3.多平臺工具鏈示例 2.4.注意事項 2.…

詳解鴻蒙Next倉頡開發語言中的全屏模式

大家好,今天跟大家分享一下倉頡開發語言中的全屏模式。 和ArkTS一樣,倉頡的新建項目默認是非全屏模式的,如果你的應用顏色比較豐富,就會發現屏幕上方和底部的留白,這是應用自動避讓了屏幕上方攝像頭區域和底部的導航條…

LoRA 淺析

1. 核心思想 LoRA 是一種參數高效的微調方法,旨在減少微調大型語言模型 (LLMs) 所需的計算資源和存儲空間。其核心思想是: 凍結預訓練模型權重: 在微調過程中,保持預訓練 LLM 的原始權重不變。引入低秩矩陣: 對于 LL…

軟件范式正在經歷第三次革命

核心主題:軟件范式正在經歷第三次根本性革命(軟件3.0),其核心是“智能體”(Agent),未來十年將是“智能體的十年”。 邏輯模塊解析: 軟件的三次重生革命 軟件1.0: 傳統編…

JavaScript 變量與運算符全面解析:從基礎到高級應用

昨天學長說可以放緩一下學習進度,剛好最近期末復習也不是很緊張,所以來重新復習一下js的一些知識點。 一:變量 (1)變量聲明 來簡單看一下變量的一些知識點。首先是變量聲明:變量聲明盡量使用數組字母下劃線 來舉幾個例子&#x…

移動語義對性能優化的具體示例

前言 本文章對比了&#xff1a;小中大字符串在普通傳值、傳值移動、傳左值引用、傳右值引用、模板完美轉發、內聯版本等多種測試&#xff0c;對比各個方式的性能優異&#xff1a; 測試代碼1 #include <iostream> #include <string> #include <chrono> #incl…

C/C++ 和 OpenCV 來制作一個能與人對弈的實體棋盤機器人

項目核心架構 整個系統可以分為四個主要模塊&#xff1a; 視覺感知模塊 (Vision Perception Module): 任務: 使用攝像頭“看懂”棋盤。工具: C, OpenCV。功能: 校準攝像頭、檢測棋盤邊界、進行透視變換、分割 64 個棋盤格、識別每個格子上的棋子、檢測人類玩家的走法。 決策模…

SpringBoot擴展——日志管理!

Spring Boot擴展 在Spring Boot中可以集成第三方的框架如MyBatis、MyBatis-Plus和RabbitMQ等統稱為擴展。每一個擴展會封裝成一個集成&#xff0c;即Spring Boot的starter&#xff08;依賴組件&#xff09;。starter是一種非常重要的機制&#xff0c;不需要煩瑣的配置&#xf…

【JSON-To-Video】AI智能體開發:為視頻圖片元素添加動效(滑入、旋轉、滑出),附代碼

各位朋友們&#xff0c;大家好&#xff01; 今天要教大家如何在 JSON - To - Video 中為視頻內圖片元素添加滑入、旋轉、滑出的動效。 如果您還不會封裝制作自己的【視頻工具插件】&#xff0c;歡迎查看之前的教程&#xff01; AI智能體平臺&#xff0c;如何封裝自定義短視頻…

Spring Boot(九十二):Spring Boot實現連接不上數據庫就重啟服務

場景: 在線上部署時,若服務器因斷電等原因意外重啟,項目及其依賴的數據庫服務通常需要配置為自動啟動。此時,如果數據庫服務啟動較慢或失敗,Spring Boot 項目會因無法建立數據庫連接而啟動失敗。 需求: 為確保項目啟動成功,需要讓 Spring Boot 項目等待數據庫服務完全就…

Debian配置Redis主從、哨兵

前言 Redis的下載安裝可參考Centos安裝配置Redis6.x&#xff0c;Centos和Debian的步驟基本類似&#xff0c;或自行在網上搜索相關資料 注意&#xff1a;遠程連接需放開相應端口 主從 搭建一個一主二從的主從模式 處理conf文件 #進入redis所在目錄 cd /tools/redis/redis6 …

虛實交融:數字孿生如何重塑交通與公路勘察設計的未來

當每一條道路、每一座橋梁、每一盞信號燈都在數字世界獲得“永生副本”&#xff0c;交通系統從被動響應邁入主動預演的紀元 一、數字孿生的核心定義&#xff1a;超越鏡像的動態認知引擎 數字孿生&#xff08;Digital Twin&#xff09;并非簡單的三維可視化模型&#xff0c;而是…

vector模擬實現中的迭代器失效問題

首先來看一組代碼&#xff1a; iterator insert(iterator pos, const T& x) {// 擴容if (_finish _end_of_storage){size_t len pos - _stare;reserve(capacity() 0 ? 4 : capacity() * 2);pos _stare len;}iterator end _finish - 1;while (end > pos){*(end…

java 設計模式_行為型_22模板模式

22.模板模式 模板方法&#xff08;Template Method&#xff09;作為Java的設計模式之一&#xff0c;一個詞概括其優勢特點那就是&#xff1a;抽象步驟 首先我們應該抽出共通的東西做一個父類&#xff08;Base類&#xff09;&#xff0c;其次具體的蛋糕制作由子類進一步實現&…