programing

mLab에서 MongoDB 데이터베이스에 연결하면 인증에 실패함

yellowcard 2023. 7. 4. 21:49
반응형

mLab에서 MongoDB 데이터베이스에 연결하면 인증에 실패함

저는 Parse 앱을 가지고 있고, 제 앱의 데이터베이스를 mLab의 MongoDB 인스턴스로 마이그레이션하려고 합니다.

나는 이미 Heroku에 Parse Server의 포크를 설정했고 Heroku의 mLab MongoDB 추가 기능을 사용하고 있습니다.

에 mLab이라는 있습니다.heroku_1ksph3jj다음 템플릿을 사용하여 연결할 수 있습니다.

mongodb://<dbuser>:<dbpassword>@ds047124.mlab.com:47124/heroku_1ksph3jj

그러나 각 시도는 다음을 반환합니다.

Server returned error on SASL authentication step: Authentication failed.

무엇을 교체해야 할지 모르겠습니다.<dbuser>그리고.<dbpassword>데이터베이스와 이름이 같은 데이터베이스 사용자가 있습니다. heroku_1ksph3jjz그래서 그걸 썼어요.▁of▁in▁for▁▁place다 대신 그 사용자의 비밀번호를 사용했습니다.<dbpassword>제가 여기서 다른 것을 사용했어야 했나요?

다음을 통해 dbuser 및 dbpass를 얻을 수 있습니다.

heroku config | grep MONGODB_URI

응답에서 dbuser(example_user) 및 dbpass(example_pass)를 가져옵니다.

MONGOLAB_URI: mongodb://example_user:example_pass@mlab.com:12345/db

2016년 3월 현재, mLab.com 은 새로운 까다로운 인증 요구사항 때문에 mongo 3.0+(지원팀과의 대화에 따르면)만 지원합니다.

이것은 웹사이트에는 없었지만, 여기 있는 누군가에게 도움이 되기를 바랍니다!

특정 데이터베이스에 대한 사용자를 생성하라는 메시지가 표시됩니다.이 데이터베이스에 연결하려면 데이터베이스 사용자가 필요합니다.지금 생성하려면 '사용자' 탭을 방문하여 '데이터베이스 사용자 추가' 버튼을 클릭하십시오.

명백하게 보일 수 있어 정말 죄송합니다. 마이그레이션을 수행하려면 이 문자 <>를 제거해야 합니다.

예제에서 mongodb://dbuser:dbpassword@ds047124.mlab.com :47124/heroku_1ksp3jj는 다음과 같습니다.

mongo 클라이언트 버전을 확인합니다.이전 주 버전(약 2.x)인 경우 3.x로 업데이트합니다.

이후 방문자를 위해 - 비밀번호에 특수 문자를 사용하지 마십시오.특수 문자를 ASCII 또는 유니코드로 변경하더라도 mLab에서 mongoose를 사용하여 작동하지 않습니다.

또한 mLab 자격 증명을 사용하지 말고 db 사용자 자격 증명을 사용합니다.새 사용자를 만들었습니다.

예. URI에서 @ 문자가 포함된 암호가 네이티브 mongodb 드라이버를 사용할 때 작동하는 ASCII 값 %40으로 대체되었습니다.하지만 몽구스를 사용할 때는 항상 인증에 실패했습니다. 특수 문자를 제거하고 몽구스를 통해 db를 인증했습니다.

Heroku의 mLab 애드온이 설정한 비밀번호가 잘못된 것 같습니다.mLab UI에서 이를 재설정할 수 있는 명확한 방법이 없었기 때문에 결국 다른 데이터베이스 사용자(새로운 사용자 이름과 암호를 사용)를 생성하여 연결할 수 있었습니다.

Heroku 대시보드로 이동하여 설정을 확인하십시오.

이름 필드 아래에 "구성 변수 표시" 단추가 있습니다.클릭하면 데이터베이스에 uri가 있는 MONGODB_URI 변수가 표시됩니다.다음과 같이 표시됩니다.

mongodb://heroku_user:PASSWORDyourLOOKINGfor@ds2238985.mlab.com :63295/heroku_user

비밀번호는 세미콜론 바로 뒤에 herku 사용자 이름이 있습니다.

참고로 제가 너무 늦었다는 것을 압니다.herku 계정의 응용 프로그램에 mLab addon이 추가되었을 때 자동으로 생성된 mLab 계정의 정보를 얻으려면 아래 명령을 사용하십시오.

heroku config:get MONGODB_URI

참조: http://algebra.sci.csueastbay.edu/ ~greew/CS6320/매트/노드JS/Heroku/Heroku_MLABMongoDB.html

언급URL : https://stackoverflow.com/questions/36082423/connecting-to-mongodb-database-on-mlab-fails-authentication

반응형