web-dev-qa-db-ja.com

--dbを使用してバックアップmongodumpを作成できません。認証に失敗しました

MongoDB(バージョン3)ですべてのデータベースのバックアップを作成する場合:

mongodump --username bacUser --password 12345

大丈夫です。しかし、選択したデータベースのバックアップを作成しようとすると:

mongodump --username bacUser --password 12345 --db test

それは私にこのエラーを与えます:

失敗:データベースサーバーへの接続エラー:サーバーはSASL認証ステップでエラーを返しました:認証に失敗しました。

29

これで動作します:

--authenticationDatabase admin

mongodumpおよびmongorestoreコマンドには、mongodbユーザーの資格情報が保存されているデータベースの名前が必要です。 (@Zubair Alamに感謝)

62

これは動作するはずです。

mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD

また、このエラーは、ユーザー名またはパスワードが間違っている場合にポップアップすることがあります。

18
Milos Matic

--authenticationDatabase adminで同じエラーが引き続き発生する場合は、ユーザー名とパスワードが間違っている可能性があります。適切なロールを持つユーザーdb.createUser()を追加してみてください(書き込み権限も付与しました)

以下のコマンドを実行するより:(ローカルで実行している場合は-hを無視します)

 mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/

お役に立てれば...

4
Shirish Singh
mongodump --collection coll_name --db DBname  -u UName -p *** 
          --authenticationDatabase <admin/privileged> --Host ip  
          --port portNo  --out foldName

ダンプおよび復元用

mongodump --db nameDatabase --username userName --password password --authenticationDatabase admin --out mongodb\
mongorestore --db nameDatabase --username userName --password password --authenticationDatabase admin <path backup> --drop
2
user3784566

パスワードを囲む引用符を使用します。パスワードに特殊文字を使用している場合。これで問題が解決します。次のコマンドを使用します。

mongodump -d database_name -u userName -p 'password' --out directory_name

2
adeel

MongoDB 3.2では、次の手順が機能しました。

  1. もちろん、管理者のユーザー名とパスワードが正しいかどうかを確認してください。これを行うには、mongo Shellを使用します。

モンゴ

admin db.auth( "admin"、 "yourpassword")を使用します

これが1を返す場合、パスワードは正しいです。

  1. 次に、ロール「backup」を管理者に追加します(または、このロールが既に追加されていることを確認します)。 db.grantRolesToUser( "admin"、[{role: "backup"、db: "admin"}])

  2. 最後に、mongodumpコマンド。パスワードを引数として渡そうとしてもうまくいきませんでした。代わりにこれを行います:

mongodump --username admin --authenticationDatabase admin --db yourmongodatabase

次に、パスワードが表示されたらパスワードを追加します。

これは私のために働く...

2
user2996950

MLabからデータベース情報をダンプしようとしたときに、同じ問題が発生していました。私はmongo 2.xローカルおよび3.x mLabで。ローカルmongoをmLabと同じメジャーバージョンにアップグレードすると、ダンプを実行でき、問題が解決しました。

0

MLabを使用している場合、ローカルmongoのバージョンがmLabと一致しない可能性があります。デフォルトでは、Ubuntuはmongo v2.xおよびmLabはv3.x。次のコマンドで確認できます。

mongo --version

新しいmongoバージョンのインストール:

  1. 古いローカルmongoを削除します(注意してください、すべてのローカルデータベースが削除される可能性があります
Sudo apt remove mongo-clients mongodb
  1. パッケージ管理システムが使用する公開鍵をインポートします。
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
  1. MongoDBのリストファイルを作成します。

    • Ubuntu 14.04
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  • Ubuntu 16.04
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | Sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
  1. MongoDBパッケージをインストールする
Sudo apt-get install -y mongodb-org

参照: https://docs.mongodb.com/v3.2/tutorial/install-mongodb-on-ubuntu/

これでダンプできます次のコマンドを使用してデータベースを作成します。

mongodump -h <Host>:<port> -d <database-name> -u <user> -p <password> -o <output directory>
0
windyzboy