Replication

mongodb 找不到匹配讀取首選項 { mode: ‘primary’ } 設置的主機?

  • September 21, 2019

我正在部署一個 monodb 分片,我已經在三台機器上部署了一個副本集:

dev41:27017,dev42:27017,dev193:27017

configsvr在三台機器上:

dev41:27019,dev42:27019,dev193:27019

還有一個機器中的mongos:

dev41:28000

最後我嘗試將我的副本添加到 mongos 中:

mongo dev41:28000/admin
sh.addShard('rs0/dev41,dev42,dev193')

然後我得到了錯誤:

{
   "ok" : 0,
   "errmsg" : "could not find host matching read preference { mode: \"primary\" } for set rs0",
   "code" : 133
}

我遇到了同樣的問題,然後查看了 Mongos 日誌文件,它說

無法以內部使用者身份向主機名進行身份驗證,錯誤:身份驗證失敗。

請參閱此處:內部使用者身份驗證,並在 SecKey 文件和身份驗證啟用時發生。

解決

我打開了 mongod.conf文件並

security: authorization: enabled    
keyFile: /var/run/mongodb/secKey.key

失去了,所以我添加了它並重新啟動了 mongod。然後我從 Mongos 再次創建了分片,它現在正在工作。

我遇到了同樣的問題,發現我只是在 addShard 命令中將副本集的名稱弄錯了。

引用自:https://dba.stackexchange.com/questions/135240