본문 바로가기
개발/에러해결

MongoServerError: Authentication failed.

by amkorousagi 2023. 5. 15.

MongoServerError: Authentication failed.

또는

MongoServerError: not authorized on admin to execute command

 

MongoServerError: Authentication failed. 에러 내용


MongoServerError: Authentication failed.

 

MongoServerError: Authentication failed.

 

MongoServerError: not authorized on admin to execute command

 

mongosh로 유저 생성 등의 초기화 과정을 수행하기 위해 db.auth()를 진행했지만 위와 같은 오류를 만났습니다.

 

MongoServerError: Authentication failed. 에러 원인


놀랍게도 

MONGO_INITDB_ROOT_USERNAME=root
MONGO_INITDB_ROOT_PASSWORD=passwd

등으로 root의 username과 password를 설정해도

해당 username과 password로  바로 로그인할 수 없습니다.

 

이는 생성한 root 유저 정보가 admin 데이터 베이스에 있기 때문입니다.

인증 과정은 user 데이터 베이스 정보에 있는 유저정보를 기반으로 하기 때문에,

같은 이름으로 root 유저를 생성하기 전에는 할 수가 없습니다.

 

MongoServerError: Authentication failed. 해결 방법


 

다음과 같이 createUser로 한번더 user를 만들어줘야 로그인이 가능합니다.

mongosh
use admin
db.createUser(
  {
    user: "root",
    pwd: "passwd",
    roles: [ { role: "root", db: "admin" } ]
  }
)

 

이후 root로 로그인하고 사용할 유저를 생성하면 됩니다.

db.auth("root","passwd")
db.createUser({user:"myUser",pwd:"myPasswd",roles:[{role:"readWrite",db:"myDB"}]})

 

다음과 같이 OK가 나오면 성공입니다.

{ok: 1, ...} - 저의 경우는 replica set을 사용해서 cluster 관련 정보가 나왔습니다.

 

 

 

참고 자료


 

MongoDB Documentation

Atlas MongoDB Atlas is a multi-cloud developer data platform that provides the database and data services that accelerate and simplify how you build with data. Available on AWS, Google Cloud, and Microsoft Azure. MongoDB Database Manual The official manual

www.mongodb.com

 

댓글