##是正常的,因为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...