पृष्ठभूमि जानकारीNodeJS आवेदन - MongoDB कनेक्शन त्रुटि के साथ विफल "ECONNREFUSED"
मैं चारों ओर मेरी पहली NodeJS परीक्षण ऐप को एक दूरस्थ MongoDB से कनेक्ट करने के प्रयास कर रहा है के साथ खेल रहा हूँ।
समस्या:
कनेक्शन निम्न संदेश के साथ विफल हो रहा है:
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;
}
});
}
मैं अब तक क्या देख लिया है:
[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
यहाँ कनेक्ट करने के लिए तर्क दिया गया है:
मुझे यकीन है कि डेटाबेस सर्वर पोर्ट 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" शुरू करके "परीक्षण" कहा जाता है ... और उसके बाद "उपयोग परीक्षण"/"व्यवस्थापक का उपयोग करें" कमांड का उपयोग कर परीक्षण डेटाबेस में और बाहर स्विचिंग।
मुझे विश्वास नहीं है कि मेरे पास प्राधिकरण चालू है।
# Turn on/off security. Off is currently the default #noauth = true #auth = true
और यह साबित करने के लिए, क्रम में कमांड लाइन के माध्यम से सर्वर पर परीक्षण डेटाबेस में प्राप्त करने के लिए, मैं सिर्फ करने के लिए है: यह है कि मैं क्या mongo.conf फ़ाइल में है "mongo" टाइप करें और फिर डिफ़ॉल्ट रूप से, मैं परीक्षण डेटाबेस में हूं। तो मुझे लगता है कि मैं सुरक्षित रूप से मान सकता हूं कि मेरे पास कोई प्रमाणीकरण नहीं चल रहा है।
शायद ज़रुरत पड़े, मैं भी पोर्ट संख्या के लिए netstat जाँच:
व्यवस्थापक @ mongotest: ~ $ sudo netstat -taupen | ग्रेप मोंगो टीसीपी 0 0 127.0.0.1:27017 0.0.0.0:* सुनें 117 6,465,150 18792mongod
व्यवस्थापक @ mongotest: ~ $
मैं वर्तमान में मैनुअल पढ़ रहा हूँ हो, तो कुछ और मैं चाहिए देखने के लिए जांच कर रहे हैं। मैं विभिन्न स्टैक ओवरफ्लो पोस्टों के माध्यम से भी पढ़ रहा हूं जो समान हैं, लेकिन मुझे अभी तक कोई जवाब नहीं मिला है।
कोई सुझाव?
आपका नेटस्टैट आउटपुट स्पष्ट रूप से दिखाता है कि मोंगोड केवल 127.0.0.1 इंटरफ़ेस पर सुन रहा है। आपको अपनी कनेक्ट स्ट्रिंग को mongodb में बदलना होगा: //127.0.0.1: 27017/test। – sabertiger
मेरा उत्तर देखें: http: // stackoverflow।कॉम/ए/37994794/3166417 – itzhar