mongodb “errmsg” : "not master and slaveOk=false"的解决办法

##是正常的,因为SECONDARY是不允许读写的,如果非要解决执行 rs.slaveOk() 这句命令就可以了

[yukw@mongodb4 data]$ ./mongo -port 20000
MongoDB shell version v3.4.4
connecting to: mongodb://127.0.0.1:20000/
MongoDB server version: 3.4.4
Server has startup warnings:
2019-07-31T17:06:43.397+0800 I CONTROL  [initandlisten]
2019-07-31T17:06:43.397+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten]
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten]
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten]
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
2019-07-31T17:06:43.398+0800 I CONTROL  [initandlisten]
> show users
2019-07-31T17:07:33.469+0800 E QUERY    [thread1] Error: not master and slaveOk=false :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
DB.prototype.getUsers@src/mongo/shell/db.js:1537:1
shellHelper.show@src/mongo/shell/utils.js:752:9
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
> show dbs
2019-07-31T17:07:39.126+0800 E QUERY    [thread1] Error: listDatabases failed:{
	"ok" : 0,
	"errmsg" : "not master and slaveOk=false",                    ##报错提示
	"code" : 13435,
	"codeName" : "NotMasterNoSlaveOk"
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:62:1
shellHelper.show@src/mongo/shell/utils.js:769:19
shellHelper@src/mongo/shell/utils.js:659:15
@(shellhelp2):1:1
> rs.slaveOk();						           ##执行命令	
> show dbs
local  0.000GB
> show users

好了,这就是解决not master and slaveOk=false的方法了,如有问题可与博主一起交流讨论!

Error: error: { "$err" : "not master and slaveOk=false", "code" : 13435 } 这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下: 执行如下命令: health_record_new:SECONDARY> rs.slaveOk() 首先这是正常的,因为SECONDARY是不允许读写的, 在写多读少的应用中,使用Replica Sets来实现读写分离。通过在连接时指定或者在主库指定slaveOk,由Secondary来分担读的压力,Primary只承担写操作。 对于replica set 中的secondary 节点默认是不可读的, [mongodb@ligh bin]$ mongo 127.0.0.1:3333... 在SECONDARY执行操作出发现错误:“not master and slaveok=false” 这是正常的,因为SECONDARY是不允许读写的,如果非要解决,方法如下: SECONDARY> rs.slaveOk(); 错误发生前提:连接的MongoDB是个镜像(secondary) 发生原因:镜像(secondary)可能有延迟导致数据不准,所以不予显示 错误代码:not master and slaveok=false 解决思路:我google了一堆,照着官方文档,从MongoDB shell下载(Mongosh),然后到extension设置里改路径。然而并没有什么用。 解决办法:连接数据库的时候点击Advanced,有一个Secondary,选上这个再点击Connect就完事了。 SECONDARY> show collections; Fri Jul 18 17:36:53 uncaught exception: error: { "$err" : "not master and slaveok=false", "code" : 13435 } 原因是从服务器上的数据库是不允许进行读写操作,所以就会报类... 链接mongodb报错如下 2016-03-14T16:26:00.912+0800 E QUERY [thread1] Error: listDatabases failed:{ "ok" : 0, "errmsg" : "not master and slaveOk=false", "code" : 13435 } : _getErrorWithCode@src/mongo/shell...