mongodb root用户创建数据库提示not master的解决(mongodb数据库语句)这都可以

随心笔谈2年前发布 admin
204 0 0

文章摘要

这篇文章详细描述了在使用MongoDB时遇到的问题,即错误提示"not master and slaveOk=false"。以下是总结: 1. **问题背景**: 当在MongoDB集群中运行`rs.slaveOk()`命令时,会遇到错误提示"not master and slaveOk=false"。这种情况通常发生在集群模式下,主节点(master)和从节点(secondary)之间存在配置问题。 2. **问题原因**: 根据日志,可能的原因包括: - 主节点(master)故障或重启。 - 集群配置不正确,导致从节点无法正常工作。 - 内核设置问题,如`transparent_hugepage`配置为“always”,建议设置为“never”。 3. **解决方法**: - **重启主节点(master)**:这是最常见的解决方案,因为错误提示表明 master 节点出现故障。 - **执行`rs.slaveOk()`命令**:在从节点(secondary)上执行该命令可以检查集群状态,确认是否恢复。 - **检查集群配置**:确保所有节点的 IP 地址正确,并且 master 节点能够正确分配 IP。 - **内存和内核设置**:避免使用过多内存,调整内核设置以避免潜在的问题。 4. **注意事项**: - 单机模式下不会出现此错误,因此必须确保使用 MongoDB 集群模式。 - 在重启节点之前,检查并确保所有配置和日志问题已解决,以避免类似问题再次发生。 总结:问题的根本原因是 master 节点故障,解决方法包括重启 master 节点或执行`rs.slaveOk()`命令来恢复集群状态。同时,检查集群配置和内核设置也是关键。



目录mongodb root用户创建数据库提示not master问题如题 解决方法mongodb “errmsg” : “not master and slaveOk=false”的解决总结

问题也比较简单, 就是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的方法了

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:mongodb 数据库操作详解–创建,切换,删除Mongodb常见错误与解决方法小结(Mongodb中经常出现的错误)mongodb 常见问题处理方法收集

© 版权声明

相关文章