MongoDB的事务处理必须使用复制集的连接方式,所以如果你直接连接MongoDB服务器进行事务处理的开发。会报错:# Transaction numbers are only allowed on a replica set member or mongos
此时,很多伙伴以为必须在本地配置多个节点组成复制集。其实并没有那么麻烦,只需要将现有单副本转成复制集就可以满足事务处理的开发了,无需增加新的节点。单副本转为复制集也很简单。
第一步、关闭实例
第二步、以复制集方式启动
在原有启动参数上加上 --replSet rs0 例如:
mongod --port 27017 --dbpath /srv/mongodb/db0 --replSet rs0 --bind_ip localhost,<hostname(s)|ip address(es)>
第三步、使用 mongo shell 连接 mongod 实例
第四步、初始化复制集
在mongo shell中输入 rs.initiate()
rs.initiate()
此时,你的单节点复制集已经运行。