我打開這個問題是因為我不確定這是否只發生在我身上。
當我在 mongo url 中傳遞資料庫時,我無法連接到資料庫。我正在使用與此類似的結構:
const logger = winston.createLogger({
levels: customLevels,
format: winston.format.combine(
winston.format.errors({ stack: true }),
winston.format.json(),
winston.format.timestamp(),
),
transports: [
new winston.transports.MongoDB({
db: `mongodb://user:pass@host:port/database`,
tryReconnect: true,
collection: 'logs',
options: { useNewUrlParser: true, useUnifiedTopology: true }
}),
],
});
但是在嘗試連接時,我收到以下錯誤:
winston-mongodb: will try reconnecting in 10 seconds
winston-mongodb: error initialising logger MongoError: Authentication failed.
當我從 mongodb 的連接字串中洗掉資料庫時,它會連接并在 mongo 上創建一個名為“test”的資料庫。用戶名和密碼正確,因為我輸入了相同的資料來創建我要連接的資料庫。
還有其他人經歷過類似的事情嗎?
uj5u.com熱心網友回復:
您很可能需要在 uri 中添加身份驗證資料庫,如下所示:
db: `mongodb://user:pass@host:port/database?authSource=admin`
否則 mongo 將在您提供的“資料庫”中搜索用戶...
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/456172.html
