인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

감사합니다님의 프로필 이미지
감사합니다

작성한 질문수

Node.js 교과서 - 기본부터 프로젝트 실습까지

몽고디비 authentication 질문입니다.

작성

·

2.6K

0

강의 내에는 없어서 질문드립니다. 일단 제가 해온 순서대로 적어보겠습니다.

1. 처음에 그냥 mongod 를 했는데 에러가 나서 보니 C:data\db 가 없다고 나오길래 요걸 만들고 나서 다시 실행했습니다. 

2. 잘 되길래 이번에는 mongod --auth를 한뒤 Compass에 로그인을 하려니까 비밀번호 없이  했을 땐 로그인이 되고 비밀번호 넣고 했을 땐 시간초과되면서 로그인에 실패했습니다.

3. 보니까 아이디, 비밀번호를 만들어야되는거 같아서 https://planbs.tistory.com/entry/MongoDB-%EC%9D%B8%EC%A6%9Dauthorization-%EC%B6%94%EA%B0%80%ED%95%98%EA%B8%B0

여기 나와있는대로 관리자 계정까지만 생성하고 로그인 시도했습니다. (사용자계정은 admin이 아니길래 안만들었습니다.) 이번에는 비밀번호 넣고 했을 때 로그인이 잘 됐는데 비밀번호 없이 로그인 했을때도 잘 돼는게 이상했습니다. (mongod --auth 상태)

4. 일단 해결방법을 몰라서 강의 계속 들으면서 하다가 서버를 실행시키니까 Authentication 에러로 몽고디비 연결이 계속 끊깁니다.. 

아래 코드에서 제로초님이 하신대로 비밀번호를 넣게되면 아래와같은 에러가 발생합니다.

mongoose.connect('mongodb://root@localhost:27017/admin', {
dbName: 'nodejs',

MongoNetworkError: failed to connect to server [localhost:27017] on first connect [MongoError: Authentication failed. 

일단 인증없이 진행하긴 했는데 사용자 계정을 만들어야되는지, 아니면 도중에 뭘 빠뜨렸는지... 안되는 이유를 모르겠습니다.

정리해드리면 mongod --auth 상태에서 Compass에 로그인 할 때 비밀번호 없이 로그인해도 정보가 보입니다. 그리고 인증이 필요한 상태에서 서버를 실행하면 위 에러가 발생하면서 몽고디비 연결이 끊깁니다. 인증없이 서버를 실행하면 정상 작동합니다.

답변 3

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

계정에 비밀번호가 없을 때는 아이디만 넣고 하시는 게 맞습니다.

0

노드버드가 뭔가요?? 현재 섹션7 몽고디비와 몽구스 진행중입니다. 강사님이 적어주신대로 코드에 넣으면 위 에러가 발생하면서 몽고디비 연결이 끊깁니다. 비밀번호 없이 mongodb://아이디@localhost:27017/admin 하면 연결되구요..

3번처럼 관리자 계정만 만들었는데 원래는 작동되어야 정상인건가요?

 

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

노드버드에서 mongodb://아이디:비밀번호@localhost:27017/admin으로 접속해보세요.

감사합니다님의 프로필 이미지
감사합니다

작성한 질문수

질문하기