MongoDB的“not master and slaveok=false”问题的解决方法

首先出现这个提示是正常的,MongoDB默认是不允许读写非活跃节点的。如果默写情况下你真的需要这样做,可以使用setSlaveOk()方法。
副本集设置完成之后登陆非活跃节点查询数据得到如下提示:

rs1:SECONDARY> show collections;
Thu Mar 14 14:38:38 uncaught exception: error: { "$err" : "not master and slaveOk=false", "code" : 13435 }
rs1:SECONDARY>

出现该问题的原因是默认情况下,非活跃节点不允许读写。可以通过db.getMongo().setSlaveOk();来修改改设置。如下所示:

rs1:SECONDARY> db.getMongo().setSlaveOk();
rs1:SECONDARY> show collections;
collection list....

只要退出当前会话该设置即失效,下次登陆还需要重新设置。

此条目发表在redis/memcached/mongo分类目录,贴了标签。将固定链接加入收藏夹。

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据