2016-11-22 43 views
0

我的应用程序正在试图建立到MongoDB的EC2上使用下面的命令连接:使用mongoose.connect()连接到MongoDB实例在EC2上

mongoose.connect("mongodb://username:[email protected]:27017/databasename") 

我有口27017和28017打开服务器。为了验证我也打开了所有的流量,这不是一个好主意。

我也能够通过蒙戈没有问题连接:

mongo admin --username username -p --host ec2-xx-xxx-x-xxx.us-west-2.compute.amazonaws.com --port 27017 

当我运行应用程序,我得到以下错误:

/home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/lib/utils.js:99 
process.nextTick(function() { throw err; }); 
          ^
MongoError: Authentication failed. 
at Function.MongoError.create (/home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/error.js:31:11) 
at /home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/pool.js:483:72 
at authenticateStragglers (/home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/pool.js:429:16) 
at null.messageHandler (/home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/pool.js:463:5) 
at Socket.<anonymous> (/home/ubuntu/workspace/website.com/appname/node_modules/mongoose/node_modules/mongodb/node_modules/mongodb-core/lib/connection/connection.js:309:22) 
at emitOne (events.js:77:13) 
at Socket.emit (events.js:169:7) 
at readableAddChunk (_stream_readable.js:153:18) 
at Socket.Readable.push (_stream_readable.js:111:10) 
at TCP.onread (net.js:536:20) 
+1

我看到2个可能的问题:1 - 您的用户名:密码未在应用程序中设置。 2 - 你有一个用户设置为数据库名?默认情况下,除非明确设置,否则不需要用户连接到数据库 –

回答

1

看来你没有创建一个用户尝试连接的数据库。我将使用管理员用户连接MongoDB并创建它:

mongo admin --username root --password rootpassword --host ec2-xx-xxx-x-xxx.us-west-2.compute.amazonaws.com --port 27017 

MongoDB shell version: XXX 
connecting to: x.x.x.x:27017/admin 

> db = db.getSiblingDB('databasename') 
databasename 
> db.createUser({ user: "username", pwd: "password", roles: [ "readWrite", "dbAdmin" ]}) 
{ 
"user" : "username", 
"pwd" : "...", 
"roles" : [ 
    "readWrite", 
    "dbAdmin" 
], 
"_id" : ObjectId("...") 
} 
> exit 
相关问题