`

【转】MongoDb的“not master and slaveok=false”错误及解决方法

 
阅读更多
首先这是正常的,因为SECONDARY是不允许读写的, 在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。
对于replica set 中的secondary 节点默认是不可读的,

[mongodb@ligh bin]$ mongo 127.0.0.1:33333
MongoDB shell version: 2.0.1
connecting to: 127.0.0.1:33333/test
SECONDARY> db.user.find()
error: { "$err" : "not master and slaveok=false", "code" : 13435 }
SECONDARY> db.getMongo()
connection to 127.0.0.1:33333
SECONDARY> db.getMongo().setSlaveOk();
not master and slaveok=false
 
在主库上设置 slaveok=ok
[mongodb@ligh bin]$ mongo 127.0.0.1:33333
MongoDB shell version: 2.0.1
connecting to: 127.0.0.1:33333/test
PRIMARY> db.getMongo().setSlaveOk();
PRIMARY> 
在从库进行测试
SECONDARY> db.user.find()
{ "_id" : ObjectId("4eb68b1540643e10a0000000"), "id" : 1, "name" : "zhangsan" }

{ "_id" : ObjectId("4eb68b1540643e10a0000001"), "id" : 2, "name" : ";lisi" }

另外可参考如下解决方案:
http://stackoverflow.com/questions/8990158/mongdodb-replicates-and-error-err-not-master-and-slaveok-false-code

 

转自 http://blog.163.com/lgh_2002/blog/static/44017526201301123736391/

分享到:
评论

相关推荐

    MongoDb的”not master and slaveok=false”错误及解决方法

    使用mongodb时,出现“not master and slaveok=false”错误,原因是secondary不允许读写。 因为系统中mongodb做了主备,主备切换了,也可能导致这个问题。 把命令mongo –username=root –password=123456 –host=...

    MongoDb的"not master and slaveok=false"错误及解决方法

    总之,解决 "not master and slaveok=false" 错误的关键在于理解MongoDB的副本集机制和读写策略,以及正确配置客户端连接。通过适当监控和管理副本集,可以避免这类问题,并确保数据库系统的稳定运行。了解和掌握...

    mongodb副本集搭建

    在 MongoDB 副本集中,存在一些常见的问题,例如从库中无法查看数据的原因是 not master and slaveOk=false,解决办法是从库中执行 rs.slaveOk() 命令。 MongoDB 副本集搭建需要经过多个步骤,包括安装环境准备、...

    MongoDB集群安装配置

    2. **处理“not master and slaveOk=false”错误**: - 当在从服务器尝试查询时,可能会遇到上述错误。 - 解决方案是启用`slaveOk()`选项: ```javascript rs.slaveOk(); ``` #### 六、日志检查与总结 1. **...

    解决启动MongoDB错误:error while loading shared libraries: libstdc++.so.6:cannot open shared object file:

    - "not master and slaveok=false"错误提示表明MongoDB集群的主从复制配置存在问题,需要调整复制配置。 通过熟悉这些常见问题和解决方案,可以更有效地管理和维护MongoDB数据库系统,确保其稳定运行。在实际操作中...

    关于单台MongoDB实例开启Oplog的过程详解

    - 初始化过程中可能出现错误,如“not master and slaveOk=false”。这时需要执行`rs.initiate()`命令,并确保提供正确的服务器信息。 - 指定的主机信息和端口至关重要,否则初始化可能会失败。确保在初始化命令中...

    Mongo复制集同步验证的实例详解

    但是由于默认配置,从节点不允许读操作,所以会出现错误`"not master and slaveOk=false"`。为了解决这个问题,我们需要调用`rs.slaveOk()`允许从节点进行只读操作。之后,`show tables`命令会列出数据库中的表,而`...

Global site tag (gtag.js) - Google Analytics