前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >docker搭建mongodb单节点副本集

docker搭建mongodb单节点副本集

作者头像
美团骑手
发布2022-12-05 14:22:36
3K0
发布2022-12-05 14:22:36
举报
文章被收录于专栏:技术进阶

背景

在开发中,我们很容易通过docker启动一个普通的mongodb数据库服务。但是有时候为了保持与线上环境一致,或者为了利用mongodb副本集的某些特性,我们需要在本地部署mongodb副本集。副本集往往需要启动多个mongodb服务作为副本集成员,而通常用于开发的笔记本资源比较有限。鉴于此,官方文档给了解决办法,可以直接将一个单节点mongodb服务转换为单节点副本集https://www.mongodb.com/docs/manual/tutorial/convert-standalone-to-replica-set/,本片文章的背景就是在golang中开发,操作mongo开启事务后报错:

代码语言:javascript
复制
(IllegalOperation) Transaction numbers are only allowed on a replica set member or mongos

需要开启副本集才能使用事务,并且mongo版本大于4.0以上哈

操作

  1. pull mongo镜像 这边使用mongo5.0.7
代码语言:javascript
复制
docker pull mongo:5.0.7
  1. 创建并启动一个mongo副本集容器
代码语言:javascript
复制
docker run -d --name mongo_test -p 27017:27017 mongo:5.0.7 --replSet rs0

其中 --replSet rs0就是指明开启副本集

  1. 进入容器初始化副本集
代码语言:javascript
复制
docker exec -it mongo_test bash
  1. 进入终端输入
代码语言:javascript
复制
mongosh
  1. 在mongosh终端内输入
代码语言:javascript
复制
rs.initiate()

,它便会自动根据默认配置生成一个副本集

  1. 检查副本集状态,使用
代码语言:javascript
复制
rs.status()
  1. 大功告成!

注:一定要在终端内输入mongosh进入mongosh后 再执行rs.initiate()和rs.status()

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-11-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 操作
相关产品与服务
云数据库 MongoDB
腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档