codememo

mongo의 명령줄 인증 실패

tipmemo 2023. 6. 2. 20:34
반응형

mongo의 명령줄 인증 실패

저는 osx에서 mongo 2.2.2를 실행하고 있습니다.

작업을 수행하면 다음 인증이 정상적으로 수행됩니다.

$ mongo
>> use admin
>> db.auth("uname", "password")

로그:

Thu Mar  7 13:51:08 [initandlisten] connection accepted from 127.0.0.1:63474 #10 (4 connections now open)
Thu Mar  7 13:51:08 [conn10]  authenticate db: admin { authenticate: 1, nonce: "123", user: "uname", key: "456" }

그러나 명령줄에서 직접 인증을 시도할 때:

$ mongo admin -u uname -p password

다음 오류가 발생합니다.

Thu Mar  7 14:25:52 [initandlisten] connection accepted from 127.0.0.1:63939 #12 (5 connections now open)
Thu Mar  7 14:25:52 [conn12]  authenticate db: admin { authenticate: 1, nonce: "789", user: "uname", key: "147" }
Thu Mar  7 14:25:52 [conn12] auth: key mismatch uname, ns:admin
Thu Mar  7 14:25:52 [conn12] end connection 127.0.0.1:63939 (4 connections now open)

원인이 뭔지 아는 사람?

특수 문자(특히 달러 기호)를 포함하는 암호는 명령 셸로부터 특수 문자를 보호하기 위해 작은 따옴표로 묶어야 합니다.

$ mongo admin -u uname -p 'password'

다음을 사용해야 합니다.--authenticationDatabase작성한 사용자를 찾을 mongodb를 나타냅니다.예:

mongo admin -u uname -p 'password' --authenticationDatabase admin

터미널에서 인증 MongoDB 데이터베이스에 액세스하는 방법입니다.

mongo -u user_name -p "your_password" host_name/database_name

예:

mongo -u hasib -p "123456" localhost/my_db

다음과 같이 mongo 연결 URL을 사용하여 연결할 수도 있습니다.

mongo "mongodb://<user>:<password>@<host: 127.0.0.1>:<port: 27017>/<db_name>?authSource=admin"
  • db_name은 선택 사항입니다.
  • 로컬 호스트에 연결하는 경우 호스트는 일반적으로 127.0.0.1입니다.
  • 항구는 보통 27017입니다.

명령줄을 통해 MongoDB에 로그인하려면 다음을 수행합니다.

$ mongo admin -u 'username' -p 'Password'

언급URL : https://stackoverflow.com/questions/15272521/command-line-authentication-of-mongo-fails

반응형