2015-07-21 8 views
11

पृष्ठभूमि जानकारी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 

यहाँ कनेक्ट करने के लिए तर्क दिया गया है:

  1. मुझे यकीन है कि डेटाबेस सर्वर पोर्ट 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** 
    
  2. मुझे यकीन है कि मैं एक डेटाबेस है बनाया है "mongo" शुरू करके "परीक्षण" कहा जाता है ... और उसके बाद "उपयोग परीक्षण"/"व्यवस्थापक का उपयोग करें" कमांड का उपयोग कर परीक्षण डेटाबेस में और बाहर स्विचिंग।

  3. मुझे विश्वास नहीं है कि मेरे पास प्राधिकरण चालू है।

# Turn on/off security. Off is currently the default 
#noauth = true 
#auth = true 

और यह साबित करने के लिए, क्रम में कमांड लाइन के माध्यम से सर्वर पर परीक्षण डेटाबेस में प्राप्त करने के लिए, मैं सिर्फ करने के लिए है: यह है कि मैं क्या mongo.conf फ़ाइल में है "mongo" टाइप करें और फिर डिफ़ॉल्ट रूप से, मैं परीक्षण डेटाबेस में हूं। तो मुझे लगता है कि मैं सुरक्षित रूप से मान सकता हूं कि मेरे पास कोई प्रमाणीकरण नहीं चल रहा है।

  1. शायद ज़रुरत पड़े, मैं भी पोर्ट संख्या के लिए netstat जाँच:

    व्यवस्थापक @ mongotest: ~ $ sudo netstat -taupen | ग्रेप मोंगो टीसीपी 0 0 127.0.0.1:27017 0.0.0.0:* सुनें 117 6,465,150 18792mongod
    व्यवस्थापक @ mongotest: ~ $

मैं वर्तमान में मैनुअल पढ़ रहा हूँ हो, तो कुछ और मैं चाहिए देखने के लिए जांच कर रहे हैं। मैं विभिन्न स्टैक ओवरफ्लो पोस्टों के माध्यम से भी पढ़ रहा हूं जो समान हैं, लेकिन मुझे अभी तक कोई जवाब नहीं मिला है।

कोई सुझाव?

+0

आपका नेटस्टैट आउटपुट स्पष्ट रूप से दिखाता है कि मोंगोड केवल 127.0.0.1 इंटरफ़ेस पर सुन रहा है। आपको अपनी कनेक्ट स्ट्रिंग को mongodb में बदलना होगा: //127.0.0.1: 27017/test। – sabertiger

+0

मेरा उत्तर देखें: http: // stackoverflow।कॉम/ए/37994794/3166417 – itzhar

उत्तर

4

मैं आपके लॉग में देख सकता हूं कि मोंगो 127.0.0.1 को सुन रहा है। यह आपकी समस्या की संभावना है। मोंगो को विशिष्ट या सभी आईपी पतों को सुनने की अनुमति देने के लिए आपको बाइंड-आईपी एड्रेस कॉन्फ़िगरेशन सेटिंग बदलनी होगी। आप यहां यह कैसे कर सकते हैं: Cannot connect to mongodb using machine ip

+0

या, जैसा कि टिप्पणियों में से एक सुझाव देता है, यदि आपकी नोड सेवा मोंगो के समान मशीन पर चल रही है, तो स्थानीय कनेक्शन पर अपनी कनेक्शन स्ट्रिंग बदलें: mongodb: //127.0.0.1: 27017/test – tier1

संबंधित मुद्दे