接続設定->認証に移動-データベース名、ユーザー名、パスワードを入力-同じ問題に遭遇した接続をテストし、問題を解決した上記の情報を提供しました
参照:(Vaibhavの投稿)ポイント3.データベース名とユーザー名とパスワードを入力 RobomongoをMongoDBに接続する方法
私の経験では、失敗したデータベースユーザー/パスワード認証に関連しています。したがって、おそらくサーバーへのIP接続は成功しますが、dbへの接続に失敗しました。データベースのユーザー名/パスワードを再確認して、もう一度お試しください。
そして、「エラーの詳細を表示」の中にあるものを表示する方が良いです。
これは、接続しているユーザーにはデータベースをリストする権限がないためです。
https://docs.mongodb.com/manual/reference/built-in-roles/
ユーザー/ロールは特定のデータベース/コレクションに接続して対話できますが、Robomongoがデータベース/コレクションを一覧表示するには、listDatabases
を持つユーザーを使用してデータベースに接続できるようにする必要があります。特権。
同じエラーが発生しました(「データベースのリストを読み込めませんでした」)。何らかの理由で、すべてのデータベースとコレクションが削除されました。どうやら、Robomongoは、サーバー上で使用可能なデータベース/コレクションがない場合に状況を処理できませんでした。
この問題を解決するために、Mongo Shellに接続してデータベースを作成し、そこにコレクションを作成しました。
mongo (start mongo Shell)
use local (create database named local)
db.createCollection("somename")
その後、Mongoサーバーに接続できました
更新:この問題に再び直面しましたが、今回は仮想マシンへの新しいMongoインストールであり、他のホストからの接続が許可されなかったために発生しました。 /etc/mongod.confでbindIPを127.0.0.1から0.0.0.0に変更する必要がありました
net:
bindIp: 0.0.0.0
port: 27017
そして、mongo Sudo service mongod restart
(Robomongoを使用して)同じ問題が発生した後、データベースに接続するためのパスワードを持つユーザーを作成しましたが、現在は正常に動作しています
mongod --auth --dbpath /data/db1
コマンドを使用してMongoDBを起動している場合は、--auth
を削除して起動します。
mongod --dbpath/data/db1
これで、Robomongoは認証なしで接続できるようになります。しかし、認証なしで開始することは安全ではありません。したがって、別のターミナルを使用して、この 記事 で説明されているmongo
コマンドを使用して、dbのユーザーを作成します。
use myDB
db.createUser(
{
user: "myUserAdmin",
pwd: "abc123",
roles: [ { role: "dbAdminAnyDatabase", db: "admin" } ]
}
)
次に、--auth
を使用してMongoDBを再起動します。接続設定で上記の認証の詳細を構成した後、Robomongoに接続します。
mongod --auth --dbpath/data/db1
それを理解するのに7日かかりました。 Robo 3Tバージョン1.にアップグレードしたとき。うまく動作し始めました。以前のバージョンは1.2でした。
この問題が発生しているかどうかを知っておくと便利です。