Replication
mongodb 找不到匹配讀取首選項 { mode: ‘primary’ } 設置的主機?
我正在部署一個 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 命令中將副本集的名稱弄錯了。