3つのサーバーのMongoDBレプリカセットがあります(プライマリ1つ、セカンダリ1つ、アービター1つ。これは、Google Cloudのワンクリックインストールによって作成されるデフォルトのレプリカセットです)。プライマリサーバーとセカンダリサーバーの2つの構成ファイル(mongod.conf)が変更され、「security.authorization:enabled」が追加されました。
Rootユーザーは、次のMongoDBシェルコマンドで追加されます。
use admin
db.createUser({user:"root",pwd:"root",roles:["root"]})
「Sudo service mongod restart」を使用してプライマリサーバーとセカンダリサーバーでMongoDBサービスを再起動すると、レプリカセットへの接続が不安定になります。
rs.status()は時々結果を
MongoDBレプリカの基本的なパスワード認証(キーファイルを使用しない)を正しく設定する方法
ようやく答えが見つかりました。 MongoDBレプリカセットには、ユーザーアカウントとキーファイルの両方が必要です。 Keyfileは、ログイン用ではなく、レプリカセット内のサーバー間の認証用のようです。
Linuxでmongodbキーファイルを作成し、モード600
をそのままにしてすべてのDBサーバーにコピーします。
cd
openssl Rand -base64 741 > mongodb.key
chmod 600 mongodb.key
mongod.confファイル:
replication:
replSetName: rs0
security:
authorization: enabled
keyFile: /home/USERNAME/mongodb.key
管理ユーザー:
(just like in question content)