Mac OS 터미널에서 원격 mongo 서버에 연결하는 방법


101

MacBook의 터미널에있는 mongo 셸에 들어가고 싶습니다. 그러나 클라우드에서 실행중인 Mongo 인스턴스 (Heroku 애드온을 통한 compose.io 인스턴스)에 연결하는 데 관심이 있습니다. MongoDB URI의 이름, 암호, 호스트, 포트 및 데이터베이스 이름이 있습니다.

mongodb://username:password@somewhere.mongolayer.com:10011/my_database

Mac에서 Mongo를 실행하기를 원하기 때문이 아니라이 원격 데이터베이스에 연결하기 위해 mongo 셸 프로그램에 액세스하기 위해 Homebrew를 사용하여 MacBook에 mongodb를 설치했습니다.

그러나 원하는 전체 셸 액세스 권한을 얻을 수있는 올바른 명령을 찾을 수 없습니다. http://docs.mongodb.org/manual/reference/program/mongo/ ( "remote"검색) 여기에있는 지침을 사용 하여 연결처럼 보이는 것을 얻을 수 있지만 사용자 이름이나 암호를 제공하지 않고는 그렇지 않습니다. 완전히 연결되었습니다. 실행하면 db.auth(username, password)1이 반환되지만 (잘못된 사용자 이름과 암호를 제공 할 때 "인증 실패"가 아님) show dbs명령을 실행할 때 계속 "승인되지 않은"오류 메시지가 나타납니다 .

답변:


170

당신은 아마 잘 연결하고 있지만 실행할 충분한 권한이 없습니다 show dbs.

명령 줄에서 인증을 전달하면 db.auth를 실행할 필요가 없습니다.

mongo somewhere.mongolayer.com:10011/my_database -u username -p password

연결되면 컬렉션을 볼 수 있습니까?

> show collections

모든 것이 정상이고 데이터베이스에 대한 관리자 권한이없고 실행할 수없는 경우 show dbs


나는 당신이 설명하는 기술을 사용하여 연결할 수 있습니다. 그러나 "show collections"또는 "show users"와 같은 명령을 실행할 수 없습니다. "my_db.system.namespaces에 대한 쿼리 권한이 없음"오류가 발생합니다.
jononomo

1
좋아, 그래서 heroku는 무작위로 내 mongo 데이터베이스의 이름을 dev에서 사용했던 것과 다른 이름으로 지정했습니다. 나는 그것이 기본적으로 내 문제라고 생각합니다.
jononomo

1
하지만 마지막에? authSource = admin이 있다면. 작동하지 않습니다. --authenticationDatabase는 도움이되지 않습니다.
Roman Kazanovskyi

27017은 기본 포트입니다. 예제 포트가 작동하지 않는 경우에만. docs.mongodb.com/manual/reference/default-mongodb-port
변경

51

Mongo 3.2 이상 에서는 연결 문자열을 그대로 사용하십시오.

mongo mongodb://username:password@somewhere.mongolayer.com:10011/my_database

0

이를 수행하는 또 다른 방법은 다음과 같습니다.

mongo mongodb://mongoDbIPorDomain:port
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.