"errmsg" : "not master and slaveOk=false","code" : 13435,"codeName" : "NotMasterNoSlaveOk"


当在SECONDARY 节点读取操作,报如下错误:

rs0:SECONDARY> show tables;
2020-08-26T10:34:53.196+0800 E QUERY    [thread1] Error: listCollections failed: {
    "operationTime" : Timestamp(1598409284, 2),
    "ok" : 0,
    "errmsg" : "not master and slaveOk=false",
    "code" : 13435,
    "codeName" : "NotMasterNoSlaveOk",
    "$clusterTime" : {
        "clusterTime" : Timestamp(1598409284, 2),
        "signature" : {
            "hash" : BinData(0,"AAAAAAAAAAAAAAAAAAAAAAAAAAA="),
            "keyId" : NumberLong(0)
        }
    }
} :


原因:
SECONDARY 是不允许读写操作的。


解决方法一:
在SECONDARY 节点中执行
rs.slaveOk();


解决方法二:添加到js文件中,连接mongo时,启动shell的时候自动加载。
vi ~/.mongorc.js
rs.slaveOk();


 
原文地址:https://www.cnblogs.com/liang545621/p/7879521.html