MongoDB(バージョン3)ですべてのデータベースのバックアップを作成する場合:
mongodump --username bacUser --password 12345
大丈夫です。しかし、選択したデータベースのバックアップを作成しようとすると:
mongodump --username bacUser --password 12345 --db test
それは私にこのエラーを与えます:
失敗:データベースサーバーへの接続エラー:サーバーはSASL認証ステップでエラーを返しました:認証に失敗しました。
これで動作します:
--authenticationDatabase admin
mongodumpおよびmongorestoreコマンドには、mongodbユーザーの資格情報が保存されているデータベースの名前が必要です。 (@Zubair Alamに感謝)
これは動作するはずです。
mongodump -h SERVER_NAME:PORT -d DATABASE_NAME -u DATABASE_USER -p PASSWORD
また、このエラーは、ユーザー名またはパスワードが間違っている場合にポップアップすることがあります。
--authenticationDatabase adminで同じエラーが引き続き発生する場合は、ユーザー名とパスワードが間違っている可能性があります。適切なロールを持つユーザーdb.createUser()を追加してみてください(書き込み権限も付与しました)
以下のコマンドを実行するより:(ローカルで実行している場合は-hを無視します)
mongodump -h <ip>:<port_number> -d db_name -u newUser -p newPassword -o /home/mongodump/
お役に立てれば...
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
パスワードを囲む引用符を使用します。パスワードに特殊文字を使用している場合。これで問題が解決します。次のコマンドを使用します。
mongodump -d database_name -u userName -p 'password' --out directory_name
MongoDB 3.2では、次の手順が機能しました。
モンゴ
admin db.auth( "admin"、 "yourpassword")を使用します
これが1を返す場合、パスワードは正しいです。
次に、ロール「backup」を管理者に追加します(または、このロールが既に追加されていることを確認します)。 db.grantRolesToUser( "admin"、[{role: "backup"、db: "admin"}])
最後に、mongodumpコマンド。パスワードを引数として渡そうとしてもうまくいきませんでした。代わりにこれを行います:
mongodump --username admin --authenticationDatabase admin --db yourmongodatabase
次に、パスワードが表示されたらパスワードを追加します。
これは私のために働く...
MLabからデータベース情報をダンプしようとしたときに、同じ問題が発生していました。私はmongo 2.x
ローカルおよび3.x
mLabで。ローカルmongoをmLabと同じメジャーバージョンにアップグレードすると、ダンプを実行でき、問題が解決しました。
MLabを使用している場合、ローカルmongoのバージョンがmLabと一致しない可能性があります。デフォルトでは、Ubuntuはmongo v2.x
およびmLabはv3.x
。次のコマンドで確認できます。
mongo --version
新しいmongoバージョンのインストール:
Sudo apt remove mongo-clients mongodb
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv D68FA50FEA312927
MongoDBのリストファイルを作成します。
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
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
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>