0
我试图连接到由MongoLab创建的MongoDB,但它似乎总是失败。从MongoLab连接到MongoDB服务器的问题
var mongoose = require('mongoose');
mongoose.connect('mongodb://<dbuser>:<dbpassword>@ds123854.mongolab.com:12345/the_db');
mongoose.connection.on('open', function (ref) {
console.log('Connected to mongo server.');
});
mongoose.connection.on('error', function (err) {
console.log('Could not connect to mongo server!');
console.log(err);
});
// check if mongoose connected; 0 = no; 1 = yes; 2 = connecting; 4 = disconnecting
console.log("mongoose connection: " + mongoose.connection.readyState);
我得到的日志:
mongoose connection: 2
Could not connect to mongo server!
{ [MongoError: auth failed] name: 'MongoError', ok: 0, errmsg: 'auth failed', code: 18 }
我试图检查密码,所以我没有在我的控制台如下:
> mongo ds123854.mongolab.com:12345/the_db -u <dbuser> -p <dbpassword>
MongoDB shell version: 3.0.7
connecting to: ds123854.mongolab.com:12345/the_db
rs-ds123854:PRIMARY> db.mynewcollection.insert({ "foo": "bar"})
WriteResult({ "nInserted" : 1 })
rs-ds123854:PRIMARY> db.mynewcollection.find()
{ "_id" : ObjectId("563c1913504f0ab5cb96d74c"), "foo" : "bar" }
的用户名和密码似乎正确的,我可以看到insert命令确实将某些东西放入数据库中。 我在本地主机托管我的服务器,所以我认为这是问题所在。我在配置中缺少什么样的东西?
字符串似乎对我很好:https://docs.mongodb.org/manual/reference/connection-string/ 你检查你的mongo接受远程连接吗?你确定你没有在端口或用户/密码上做错吗? –
我相信我正在使用正确的用户/密码。如果我从我的终端连接,它似乎工作正常。麻烦似乎是当试图从我的服务器在本地主机连接 – erad
检查conf,也许你已经绑定本地主机 –