thinkphp6在windows上使用mongodb时报错“Transaction numbers are only allowed on a replica set member or mongos”,原因是thinkphp6支持了mongodb的事务方法,但是mongodb的事务只能在开启副本集的时候才能使用,windows上的mongodb安装后默认是单副本,可以转换成多副本。
参考文档:https://mongoing.com/docs/tutorial/convert-standalone-to-replica-set.htmlhttps://mongoing.com/docs/reference/configuration-options.html
具体操作:
1、找到mongodb的配置文件,mongod.cfg,在安装目录,如:D:DevelopMongoDBServer4.2
2、添加如下配置,注意replSetName之前是4个空格,测试tab字符会导致mongodb无法启动
replication:
replSetName: rs0
3、在”计算机”–“管理”–“服务”中重启mongodb服务
![9256ed9409243adf4d1b85bb1a4e89ab.png](https://i-blog.csdnimg.cn/blog_migrate/d80ede8ff62533b2a4e586982108e46d.jpeg)
windows服务管理
4、进入mongodb的bin目录,在cmd中执行这个目录的mongo命令,执行 rs.initiate() 来初始化复制集(如下图),提示需要身份验证
5、身份验证
use admin
db.auth("admin","123123")
6、返回以下成功信息即可
![93493ff343c50beaed7d244096174017.png](https://i-blog.csdnimg.cn/blog_migrate/833576c619fc5a7935aaf6673ef980b9.jpeg)
mongodb初始化集群