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()查看配置
上一篇: Centos7 下安装配置tomcat7
下一篇: 二、Redis安装