背景信息应用的NodeJS - MongoDB的连接失败,错误“ECONNREFUSED”
我玩弄我的第一个测试的NodeJS应用程序,试图连接到远程的mongodb。
问题:
的连接通过以下消息失败:
[email protected]:~/Documents/nodejs_tests$ sudo nodejs index.js
Server has started.
Request for/received
About to route a request for:/
inside db connect method
Request for /favicon.ico received
About to route a request for: /favicon.ico
inside db connect method
MongoError: connect ECONNREFUSED
null
MongoError: connect ECONNREFUSED
null
这里的逻辑连接:
function connect_nimble() {
console.log("inside db connect method");
MongoClient.connect("mongodb://10.1.1.1:27017/test", function(err,db) {
console.log(err);
console.log(db);
if(!err) {
console.log("booya! Connected to mongo");
return true;
}
});
}
我到目前为止已经检查:
我确信,数据库服务器使用的端口27017这里就是我在MongoDB的日志中看到,当我重新启动数据库:
[email protected]:~$ tail -f /var/log/mongodb/mongod.log 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'. 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] ** We suggest setting it to 'never' 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] db version v3.0.4 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] git version: 0481c958daeb2969800511e7475dc66986fa9ed5 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] OpenSSL version: OpenSSL 1.0.1f 6 Jan 2014 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] build info: Linux ip-10-45-73-23 3.13.0-24-generiC#46-Ubuntu SMP Thu Apr 10 19:11:08 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] allocator: tcmalloc 2015-07-21T09:52:41.452-0500 I CONTROL [initandlisten] options: { config: "/etc/mongod.conf", net: { bindIp: "127.0.0.1" }, storage: { dbPath: "/var/lib/mongodb" }, systemLog: { destination: "file", logAppend: true, path: "/var/log/mongodb/mongod.log" } } **2015-07-21T09:52:41.470-0500 I NETWORK [initandlisten] waiting for connections on port 27017**
我确信我有一个数据库通过启动“mongo”来调用所谓的“测试”,然后使用“use test”/“use admin”命令切换进出测试数据库。
我不相信我打开了授权。这是我在mongo.conf文件:
# Turn on/off security. Off is currently the default #noauth = true #auth = true
而要证明这一点,才能进入通过命令行的服务器上的测试数据库,我只需要键入“mongo”,然后默认情况下,我在测试数据库中。所以我认为我可以安全地假设我没有任何身份验证。
以防万一,我还检查了netstat的端口号:
管理员@ mongotest:〜$ sudo的netstat的-taupen | grep的蒙戈 TCP 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 117 6465150 18792mongod
管理员@ mongotest:〜$
我目前正在读手册,看看是否有什么我需要正在检查。我也通过类似的各种stackoverflow帖子阅读,但我还没有找到我的答案。
有什么建议吗?
您的netstat输出清楚地显示mongod正在仅侦听127.0.0.1接口。您需要将连接字符串更改为mongodb://127.0.0.1:27017/test。 – sabertiger
看到我的回答:http:// stackoverflow。com/a/37994794/3166417 – itzhar