يعمل في القشرة:
$ mongo -u monguser -p mongpass 192.168.2.2/ps --authenticationDatabase=admin
MongoDB shell version: 3.2.3
connecting to: 192.168.2.2/ps
Server has startup warnings:
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten]
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten]
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2016-02-23T01:59:10.522+0000 I CONTROL [initandlisten]
> db.foo.insert({can:'haz'})
WriteResult({ "nInserted" : 1 })
فشل النمس:
'use strict';
const mongoose = require('mongoose');
const uri = 'mongodb://monguser:[email protected]:27017/ps'
console.log('mongoose.connect =', mongoose.connect(uri, (err) => {
err && console.log('err =', err);
}));
// For `mongoose.connect` output, see: https://gist.github.com/SamuelMarks/dedd863742f90cf2f333
err = { [MongoError: Authentication failed.]
name: 'MongoError',
message: 'Authentication failed.',
ok: 0,
code: 18,
errmsg: 'Authentication failed.' }
لذلك من المهم أن نفترض أن authenticationDatabase
يحتاج إلى أن يتم تعيينه بطريقة ما ، ربما في معلمة التكوين. _ما هو بناء الجملة؟ _
أسهل طريقة هي تحديد authSource
في uri
const uri = 'mongodb://monguser:[email protected]:27017/ps?authSource=admin';
شكرا
@ vkarpov15 لقد أنقذت يومي. شكرا جزيلا.
هل يعرف أي شخص كيفية تحديد authSource عند استخدام الأمر mongodump؟ :]
ORESoftware mongodump يطلق عليه authenticationDatabase
: https://docs.mongodb.com/manual/reference/program/mongodump/#cmdoption -authenticationdatabase
التعليق الأكثر فائدة
أسهل طريقة هي تحديد
authSource
في uriconst uri = 'mongodb://monguser:[email protected]:27017/ps?authSource=admin';