Merhaba,
MongoDB‘de authorization açık olan bir standalone MongoDB’yi replica-set’e çevirmek isterseniz aşağıdaki gibi bir hata alabilirsiniz. Bu hatanın nedeni replica-set’in mutlaka keyfile istiyor olması.
BadValue: security.keyFile is required when authorization is enabled with replica sets
Çözüm için manuel bir adet keyfile oluşturuyorum.
[root@mongodb-1 mongodb]# openssl rand -base64 756 > /var/lib/mongo/replica_set_key
[root@mongodb-1 mongodb]# ls -l /var/lib/mongo/replica_set_key
-r-------- 1 mongod mongod 1024 Jun 30 23:10 /var/lib/mongo/replica_set_key
keyfile’in yetkisi mutlaka 400 veya 644 olmalı yoksa database açılırken aşağıdaki gibi bir hata alacaktır.
{"t":{"$date":"2021-06-30T23:11:43.344+03:00"},"s":"I", "c":"ACCESS", "id":20254, "ctx":"main","msg":"Read security file failed","attr":{"error":{"code":30,"codeName":"InvalidPath","errmsg":"permissions on /var/lib/mongo/replica_set_key are too open"}}}
Gerekli yetkiyi veriyoruz.
[root@mongodb-1 mongodb]# chmod 400 /var/lib/mongo/replica_set_key
MongoDB conf dosyasına keyfile parametresini ekliyoruz.
security:
authorization: enabled
keyFile: /var/lib/mongo/replica_set_key
Tüm replica-set node’larına bu keyfile’ı atıp replica-set konfigürasyonuna devam edebiliriz.
[root@mongodb-1 mongodb]# scp /var/lib/mongo/replica_set_key root@mongodb-2:/var/lib/mongo/replica_set_key
[root@mongodb-1 mongodb]# scp /var/lib/mongo/replica_set_key root@mongodb-3:/var/lib/mongo/replica_set_key
MongoDB hakkında verdiğimiz bakım ve destek hizmetimizden yararlanarak sorunlarınızı en hızlı şekilde çözebilirsiniz. Kolay gelsin.