千家信息网

mongodb在secondary不能直接获取primary的信息解决方法

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,如果通过shell访问mongo,要在secondary进行查询。会出现如下错误:[root@mongodb-secondary2 ~]# mongoMongoDB shell version: 3.
千家信息网最后更新 2026年10月31日mongodb在secondary不能直接获取primary的信息解决方法

如果通过shell访问mongo,要在secondary进行查询。会出现如下错误:

[root@mongodb-secondary2 ~]# mongoMongoDB shell version: 3.0.9connecting to: testabc:SECONDARY> show dbs2016-02-20T02:13:18.527+0800 E QUERY    Error: listDatabases failed:{ "note" : "from execCommand", "ok" : 0, "errmsg" : "not master" }

有两种方法实现从机的查询:
第一种方法:db.getMongo().setSlaveOk();
第二种方法:rs.slaveOk();
但是这种方式有一个缺点就是,下次再通过mongo进入实例的时候,查询仍然会报错,为此可以通过下列方式

为避免没有设置权重情况下,有几多台mongodb下都vi .mongorc.js,增加一行内容:rs.slaveOk(); ,这是可以避免原本是primary,避免primary发生故障后另一个secondary切换为primary,原本的primary修复好变成secondary时候执行rs.slaveOk()时候没有权限..
最好加x权限给.mongorc.js这个文件:

vi monogorc.jsrs.slaveOk():wq


[root@mongodb-secondary1 ~]#chmod u+x  .mongorc.js


这样的话以后每次通过mongo命令进入都可以查询了

[root@mongodb-secondary1 ~]# mongoMongoDB shell version: 3.0.9connecting to: testabc:PRIMARY> use mydbswitched to db mydbabc:PRIMARY> show tablessystem.indexestestc


上面的方法可以解决secondary再次登录不再提示"not master"。

方法 查询 时候 原本 方式 权限 为此 这样的话 一行 内容 再次 可以通过 命令 实例 就是 情况 故障 文件 最好 权重 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网与科技 西安纸贵互联网科技有限公司 科技和互联网公司 科技创新与互联网经济 新华互联网科技学院 北京互联网科技公司 上海挚品互联网科技 华中科技大学互联网 善班互联网科技有限公司 互联网科技网站 科技互联网创业计划书 中国互联网金融科技基金 山东吉时兔互联网科技有限公司 重庆互联网医院沙龙医盟信息科技 本届互联网博览会上的黑科技 明优互联网科技有限公司 2021互联网科技公司排名 电子商务与互联网科技的关系 昆明中奇联合互联网科技 中国科技和美国互联网 百单网互联网科技有限公司怎么样 互联网和科技技术 科技互联网项目 岳阳华臻互联网科技有限公司 青岛科技大学互联网大赛研究生 互联网科技与大数据专业 上海京穆互联网科技有限公司 互联网科技快讯热点 互联网科技接地气 恒生科技指数 中概互联网
0