Mac OS端末からリモートmongoサーバーに接続する方法


101

MacBookのターミナルでmongoシェルにドロップしたいと思います。ただし、私はクラウドで実行されているMongoインスタンス(Herokuアドオンを介したcompose.ioインスタンス)への接続に興味があります。MongoDB URIから名前、パスワード、ホスト、ポート、およびデータベース名を取得しています。

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

私はHomebrewを使用してMacBookにmongodbをインストールしました。MacでMongoを実行したいからではなく、このリモートデータベースに接続するためにmongoシェルプログラムにアクセスするためだけです。

しかし、希望する完全なシェルアクセスを取得するための適切なコマンドが見つかりません。ここにある指示を使用してhttp://docs.mongodb.org/manual/reference/program/mongo/(「リモート」を検索)接続のように見えるものを取得できますが、ユーザー名またはパスワードを入力しないと、完全に接続されています。実行db.auth(username, password)すると1が返されます(間違ったユーザー名とパスワードを入力すると「auth failed」とは対照的です)が、show dbsコマンドを発行すると引き続き「無許可」のエラーメッセージが表示されます。

回答:


170

正常に接続していますが、を実行するための十分な権限がありませんshow dbs

コマンドラインでauthを渡す場合、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 2014年

1
さて、herokuはランダムに私のmongoデータベースに、私がdevで使用していたものとは異なる名前を付けました。それは基本的に私の問題だと思います。
jononomo 2014年

1
しかし、私が最後に?authSource = adminを持っている場合。動作しません。--authenticationDatabaseは役に立ちません。
ローマカザノフスキー

ただし、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.