问题也比较简单, 就是master挂了
mongodb的集群似乎和mysql,redis的不太一样,这个我也不太清楚
总之单机不会出现这种情况,集群会出现
就是将master重启就可以了
是正常的,因为SECONDARY是不允许读写的,如果非要解决执行 rs.slaveOk() 这句命令就可以了
[yukw@mongodb4 data]$ https://www.jb51.net/article/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的方法了
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。