MongoDB "Authentication Failed" Hatası Nedir?
MongoDB'nin güvenliğini sağlamak için kimlik doğrulama mekanizmaları bulunur. Bu mekanizmalar sayesinde yalnızca doğru kullanıcı adı ve şifreye sahip kişiler veritabanına bağlanabilir. Ancak bazen yanlış bir kullanıcı adı, şifre veya yapılandırma nedeniyle MongoDB, bağlantıyı reddedebilir ve "Authentication Failed" hatasıyla karşılaşırsınız.
Adım 1: Kullanıcı Adı ve Şifrenizi Kontrol Edin
MongoDB'ye bağlanırken kullandığınız kullanıcı adı ve şifrenin doğru olduğundan emin olun. Hata mesajı genellikle Authentication Failed dedikten sonra hangi kullanıcı adı ile bağlanmaya çalıştığınızı belirtir. Bu yüzden şifrenizi tekrar kontrol edin. Eğer şifrenin yanlış olduğundan eminseniz, bir kez daha doğru bilgileri girdiğinizden emin olun.
mongo -u kullanıcı_adı -p şifre --authenticationDatabase veritabanı_adı
Eğer burada kullanıcı_adı ve şifre doğruysa, bağlantıyı başarılı şekilde gerçekleştirebilirsiniz.
Adım 2: Yetkilendirme Veritabanını Kontrol Edin
MongoDB'de bazı kullanıcılar belirli veritabanlarına erişim izniyle sınırlıdır. Yani, bir kullanıcı adı belirli bir veritabanına erişmek için oluşturulmuşsa, o veritabanı dışındaki verilere erişmeye çalışırsanız bu hata mesajını alabilirsiniz.
# Doğru Veritabanı Seçimi İçin Kod:
mongo -u kullanıcı_adı -p şifre --authenticationDatabase admin
mongo -u kullanıcı_adı -p şifre --authenticationDatabase admin
Adım 3: MongoDB Kullanıcısının Yetkilerini Gözden Geçirin
MongoDB'de kullanıcılar, belirli yetkilerle yaratılır. Eğer bu yetkilerde bir eksiklik varsa, bağlantınız reddedilebilir. Özellikle yeni bir kullanıcı eklediyseniz, onun gerekli yetkilere sahip olduğundan emin olun.
use admin
db.createUser({
user: "kullanıcı_adı",
pwd: "şifre",
roles: [ { role: "readWrite", db: "veritabanı_adı" } ]
})
Bu komut, kullanıcı_adı için readWrite rolü atayarak belirli bir veritabanında okuma ve yazma işlemlerine izin verir.
Adım 4: MongoDB Bağlantı Dizelerini Kontrol Edin
Bazen bağlantı dizelerinde yapılan küçük hatalar, Authentication Failed hatasına neden olabilir. Eğer MongoDB'ye URI üzerinden bağlanıyorsanız, URI’nizin doğru formatta olduğundan emin olun. İşte doğru bir bağlantı URI örneği:
mongodb://kullanıcı_adı:şifre@localhost:27017/veritabanı_adı
Adım 5: MongoDB Sunucusunu Yeniden Başlatın
Bazen MongoDB sunucusu, yapılandırma değişikliklerini veya kullanıcı değişikliklerini kabul etmeden bağlantı hataları verebilir. Sunucuyu yeniden başlatmak, tüm yapılandırmaların doğru şekilde uygulanmasını sağlayabilir. Bunun için şu komutu kullanabilirsiniz:
sudo systemctl restart mongod
Adım 6: MongoDB Loglarını Kontrol Edin
Eğer hala bağlantı hatası alıyorsanız, MongoDB loglarını kontrol edin. Loglar, hata mesajları hakkında daha fazla bilgi verebilir ve size hatayı bulma konusunda yardımcı olabilir. MongoDB log dosyasına şu komutla erişebilirsiniz:
sudo tail -f /var/log/mongodb/mongod.log