您好,登錄后才能下訂單哦!
如果通過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"。
免責(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)容。