web-dev-qa-db-ja.com

MongoLabデータベースに接続するときに認証に失敗しました。コード18

MongoLabデータベースに接続しようとしていますが、接続時に次のエラーが発生し続けます。

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

接続に使用しているコードは次のとおりです。

var mongoose = require("mongoose");

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

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

シェルを使って接続すると、何の問題もありません。私は何が間違っているのですか?

11
Jori

自分でこのエラーが発生した場合、2つのことを間違って行ったことがわかりました(Idosに感謝)。

  1. データベースの代わりにmongolab.comのユーザー名を使用しました。
  2. Ubuntuのリポジトリから提供された2.6シェルを使用してmongo3.4データベースに接続しようとしました。 mongo --version チェックする。

このMongoDBページ の指示に従って、キーとリポジトリをAPTソースに追加して、MongoDBインストールをアップグレードし、今後も更新してください。

1
Louis

ロケールからサーバーにデータをインポートしようとしたときに、同じ問題が発生しました。

これらの2つのパラメーターは重要である可能性があり、それらを配置した後に機能しました。

--authenticationMechanism 'MONGODB-CR' 
--authenticationDatabase "admin"

認証メカニズムに注意してください。別のメカニズムである可能性があります。ドキュメントのこの部分を確認してください: https://docs.mongodb.com/manual/reference/program/mongoimport/#cmdoption-mongoimport-authenticationmechanism

0