MongoDB4.2单机转只有一个实例的副本集以支持事务

刚开始学习MongoDB不久,写事务写了好久,一直提示报错
This MongoDB deployment does not support retryable writes. Please add retryWrites=false to your connection string.
刚开始以为代码写错,一直去找原因,试了好几种连接方式均为果,
后来在论坛上偶然看到MongoDB单机方式运行不支持事务,需要把单机转为只有一个实例的副本集。
因为客户是小公司,数据量不大,内网运行,数据安全性比较有保障,所以项目部署的时候实施人员没用副本集。

因为疫情原因,实施都还没复工,用习惯别人搭给我的,突然得自己动手改,在网上搜索资料,讲的方法都是没注册成为服务的或者不带账号密码验证的,所以只能自己摸索。

我的思路是既然我用到配置文件,是否只需要在配置文件修改就能把单机变成副本集方式运行。

所以我找到了上一篇文章用到的mongo.cfg
文章:windows server安装MongoDB 并开启远程(账号密码验证)登录
地址:https://blog.csdn.net/zinechina/article/details/103908802

然后,在配置文件添加以下内容

replication:
  oplogSizeMB: 10240
  replSetName: shard1

sharding:
  clusterRole: shardsvr

完整的配置文件:


systemLog:
    destination: file
    path: X:\你要存放日志的路径\日志名称.log
storage:
    dbPath:  X:\你要存放数据的路径
net:
    bindIp: 0.0.0.0
    port: 端口号
replication:
  oplogSizeMB: 10240
  replSetName: shard1      //副本集名称

sharding:
  clusterRole: shardsvr

修改前需要先停止服务

net stop mongodb

修改后启动服务

net start mongodb

然后cmd下cd到mogodb server安装的目录

执行

mongo -port 端口号 -u 用户名 -p 密码

登录,这时候你如果使用show dbs会提示

在这里插入图片描述
别紧张,现在需要配置一下副本集

use admin
cfg={"_id":"shard1","members":[{"_id":0,"host":"127.0.0.1:配置文件端口号"}]}
rs.initiate(cfg)

在这里插入图片描述
看到{“ok”:1}就是成功了,此时可以使用rs.conf()查看配置

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值