Mongoose: MongoError: ์ธ์ฆ ์‹คํŒจ

์— ๋งŒ๋“  2016๋…„ 10์›” 02์ผ  ยท  10์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: Automattic/mongoose

mongolab์— mongodb๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
๋ช…๋ น์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด

mongo uri/$db -u user -p pass

๊ดœ์ฐฎ์•„์š”.
๋ชฝ๊ตฌ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๋‹ค์Œ์œผ๋กœ ์—ฐ๊ฒฐํ•˜๋ฉด

mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}')

์˜ค๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค

MongoError: Authentication failed

๋‚˜๋Š” ๋ชฝ๊ตฌ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค 4.6.1

needs clarification

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

ํ  ๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? MongoDB ์‚ฌ์šฉ์ž๋Š” ํฌ๋กœ์Šค db ๊ถŒํ•œ์ด ์žˆ๋”๋ผ๋„ dbs๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ db ์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') ์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 'admin' db์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ mongodb 3.x๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ SCRAM-SHA-1 ์ธ์ฆ์„ ์‚ฌ์šฉ ์ค‘์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

๋ชจ๋“  10 ๋Œ“๊ธ€

๋˜ํ•œ 4.4.20 ๋ฒ„์ „์—์„œ๋Š” ๋ฒ„๊ทธ๊ฐ€ ์žฌํ˜„๋˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ–ˆ์Šต๋‹ˆ๋‹ค. ์ œ๋Œ€๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค

์‚ฌ์šฉ์ž ์ด๋ฆ„๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ์— ์˜์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๊นŒ? ๋น„๋ฐ€๋ฒˆํ˜ธ์—์„œ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ž๋ฅผ ์ฒ˜๋ฆฌํ•  ๋•Œ ์œ ์‚ฌํ•œ ๋ฌธ์ œ๊ฐ€ ๊ณผ๊ฑฐ์— ๋‚˜ํƒ€๋‚ฌ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ mongoose์™€ mongodb์˜ ๋ฒ„์ „์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋ชฝ๊ณ DB 'v3'
์•„๋‹ˆ์˜ค, ์˜์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ธฐํ˜ธ๋Š” ์—†์Šต๋‹ˆ๋‹ค.

ํ  ๋˜ํ•œ ์‚ฌ์šฉ์ž๊ฐ€ ์ •์˜ํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? MongoDB ์‚ฌ์šฉ์ž๋Š” ํฌ๋กœ์Šค db ๊ถŒํ•œ์ด ์žˆ๋”๋ผ๋„ dbs๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ db ์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authSource=admin') ์™€ ๊ฐ™์€ ํ•ญ๋ชฉ์„ ๋„ฃ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. 'admin' db์— ์ •์˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋˜ํ•œ mongodb 3.x๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ SCRAM-SHA-1 ์ธ์ฆ์„ ์‚ฌ์šฉ ์ค‘์ผ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋‘ ๊ฐ€์ง€๋ฅผ ๋ชจ๋‘ ์‹œ๋„ํ•ด ๋ณด์„ธ์š”.

  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=SCRAM-SHA-1')
  • mongoose.connect('mongodb://${user}:${pass}@${uri}/${db}?authMechanism=MONGODB-CR')

@vkarpov15 , ๋„ค, ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค! ๋งค์šฐ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค!

node.js๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ cloud.mongodb.com์— ์—ฐ๊ฒฐํ–ˆ์ง€๋งŒ 2๋ฒˆ์˜ ์„ฑ๊ณต์ ์ธ ์—ฐ๊ฒฐ์„ ๋งŒ๋“  ์ด์œ ์™€ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜์ง€๋งŒ ๋‹ค๋ฅธ ์‹œ๊ฐ„์—๋Š” ์—ฐ๊ฒฐ์ด ์‹คํŒจํ–ˆ์Šต๋‹ˆ๋‹ค.
image

์ฝ˜์†”์—์„œ ๋‚˜๋Š” ๋ณธ๋‹ค

server/replset/mongos ์˜ต์…˜์€ ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์œผ๋ฉฐ ๋ชจ๋“  ์˜ต์…˜์€ ์˜ต์…˜ ๊ฐœ์ฒด์˜ ์ตœ์ƒ์œ„ ์ˆ˜์ค€์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. [poolSize,ssl,sslValidate,sslCA,sslCert,sslKey,sslPass,sslCRL,autoReconnect,noDelay,keepAlive,connectTimeoutMS,fa
mily,socketTimeoutMS,reconnectTries,reconnectInterval,ha,haInterval,replicaSet,secondaryAcceptableLatencyMS,acceptableLatencyMS,connectWithNoPrimary,authSource,w,wtimeout,j,forceServerObjectId,serializeFunctions,ignoreUndefined,raw,bu
fferMaxEntries,readPreference,pkFactory,promiseLibrary,readConcern,maxStalenessSeconds,loggerLevel,logger,promoteValues,promoteBuffers,promoteLongs,domainsEnabled,keepAliveInitialDelay,checkServerIdentity,validateOptions,appname,auth]

(node:3268) UnhandledPromiseRejectionWarning: ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ Promise Rejection (rejection id: 1): MongoError: ์ธ์ฆ ์‹คํŒจ
(node:3268) DeprecationWarning: ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์•ฝ์† ๊ฑฐ๋ถ€๋Š” ๋” ์ด์ƒ ์‚ฌ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์•ž์œผ๋กœ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์€ ์•ฝ์† ๊ฑฐ๋ถ€๋Š” 0์ด ์•„๋‹Œ ์ข…๋ฃŒ ์ฝ”๋“œ๋กœ Node.js ํ”„๋กœ์„ธ์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์‹œ๋„ํ–ˆ์ง€๋งŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค,

๋ชฝ๊ตฌ์Šค v4.5.3
๋ชฝ๊ณ DB v3.4.7

์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€:
MongoError: Authentication failed. 14|gougouS | at Function.MongoError.create (/www/website/gougouServer/source/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11)

db URL ๋์— ?authSource=yourDB&w=1 ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
๋‚˜๋ฅผ ์œ„ํ•œ ์ด ์ž‘ํ’ˆ. &w=1 ์ค‘์š”

db URL ๋์— ?authSource=yourDB&w=1 ๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

mongoose.connect('mongodb://user:password@host/yourDB?authSource=yourDB&w=1')
๋‚˜๋ฅผ ์œ„ํ•œ ์ด ์ž‘ํ’ˆ. &w=1 ์ค‘์š”

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. :3 ์ข‹์€ ๋‹ต๋ณ€

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰