溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

mongodb在secondary不能直接獲取primary的信息解決方法

發(fā)布時間:2020-07-10 13:32:05 來源:網(wǎng)絡(luò) 閱讀:4426 作者:wsw26 欄目:MongoDB數(shù)據(jù)庫

如果通過shell訪問mongo,要在secondary進(jìn)行查詢。會出現(xiàn)如下錯誤:                 

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

有兩種方法實現(xiàn)從機的查詢:
第一種方法:db.getMongo().setSlaveOk();
第二種方法:rs.slaveOk();
但是這種方式有一個缺點就是,下次再通過mongo進(jìn)入實例的時候,查詢?nèi)匀粫箦e,為此可以通過下列方式

為避免沒有設(shè)置權(quán)重情況下,有幾多臺mongodb下都vi .mongorc.js,增加一行內(nèi)容:rs.slaveOk(); ,這是可以避免原本是primary,避免primary發(fā)生故障后另一個secondary切換為primary,原本的primary修復(fù)好變成secondary時候執(zhí)行rs.slaveOk()時候沒有權(quán)限..
最好加x權(quán)限給.mongorc.js這個文件:

vi monogorc.js
rs.slaveOk()
:wq


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


這樣的話以后每次通過mongo命令進(jìn)入都可以查詢了

[root@mongodb-secondary1 ~]# mongo
MongoDB shell version: 3.0.9
connecting to: test
abc:PRIMARY> use mydb
switched to db mydb
abc:PRIMARY> show tables
system.indexes
testc


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

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI