2016-01-04 17 views
7

Tôi đang cố gắng để kết nối với một cơ sở dữ liệu MongoLab nhưng vẫn gặp lỗi sau trên kết nối:Auth thất bại, mã 18 khi kết nối với cơ sở dữ liệu MongoLab

{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 } 

Mã Tôi đang sử dụng để kết nối là:

var mongoose = require("mongoose"); 

mongoose.connect("mongodb://username:[email protected]:61474/apitest"); 

mongoose.connection.on('error', function (err) { 
    console.log(err); 
}); 

Khi tôi kết nối bằng vỏ, tôi không gặp vấn đề gì. Tôi đang làm gì sai?

+1

Bạn có thể kiểm tra nếu vô tình bạn đang sử dụng tên người dùng và mật khẩu mongolab.com của bạn, thay vì tên người dùng và mật khẩu cơ sở dữ liệu? – Idos

+1

Ngoài ra, bạn có thể sử dụng phiên bản shell cũ để kết nối với phiên bản mới hơn mongodb không? – Idos

Trả lời

8

Tôi đã gặp sự cố tương tự khi kết nối db mongo sử dụng mongoose. Sau khi khám phá một lúc, tôi thấy mongoLab đang sử dụng xác thực SCRAM-SHA-1. Hãy tham khảo những câu hỏi dưới đây tôi đã cố gắng để nâng cấp cầy mangut tôi để V4.1.11, và sau đó nó làm việc cho tôi

Authentication in mongoose using SCRAM-SHA-1

+0

phiên bản nâng cấp mongoose đã giúp tôi .. cảm ơn :) tham khảo https://github.com/mongolab/hello-mongoose/commit/d873461a5cae8c914b4385f6259b2d7a83e164e3 này – rtvalluri

1

Đã lỗi này bản thân mình, hóa ra tôi đã làm hai điều sai (nhờ IDOS):

  1. Đã sử dụng tên người dùng mongolab.com thay vì tên người dùng cơ sở dữ liệu.
  2. Đã cố gắng kết nối với cơ sở dữ liệu mongo 3.4 bằng trình bao 2.6 được cung cấp thông qua kho lưu trữ của Ubuntu. mongo --version để kiểm tra.

để thêm khóa và kho lưu trữ vào nguồn APT của bạn để nâng cấp và cập nhật cài đặt MongoDB của bạn.

Các vấn đề liên quan