2012-02-05 19 views
20
कनेक्ट करने में असमर्थ

मैं सिर्फ MongoDB (मानक उबंटू का निर्माण, नवीनतम स्थिर नहीं) स्थापित किया है और किसी कारण से मैं कनेक्ट नहीं कर सकता:MongoDB

Mon Feb 6 03:11:22 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:79 
exception: connect failed 

अब मेरी मशीन 127.xx नहीं है 1 यह किसी कारण XXX2 के लिए है (लेकिन मैं अपने config बदल दिया है कि पता करने के लिए बाध्य करने के लिए, और यह भी मेरी सार्वजनिक आईपी जो कोई लाभ नहीं हुआ प्रदान की करने के लिए बाध्य करने की कोशिश की

कॉन्फ़िग:।

# mongodb.conf

# Where to store the data. 

# Note: if you run mongodb as a non-root user (recommended) you may 
# need to create and set permissions for this directory manually, 
# e.g., if the parent directory isn't mutable by the mongodb user. 
dbpath=/var/lib/mongodb 

#where to log 
logpath=/var/log/mongodb/mongodb.log 

logappend=true 

bind_ip = 199.21.114.XX 
port = 27017 

मैंने लॉग की जांच की है और केवल स्टार्टअप जानकारी वहां प्रदर्शित हो रही है।

मैंने यह भी जांच लिया है कि डेमॉन भी चल रहा है, और यह है - मैंने इसे --fork के साथ मैन्युअल रूप से चलाने का भी प्रयास किया।

क्या कोई इससे पहले इस पर आ गया है? या कोई सुझाव?

Thx

अद्यतन:

पुन: प्रारंभ करने के बाद - यहाँ हैं लॉग्स:

** WARNING: You are running in OpenVZ. This is known to be broken!!! 

Tue Feb 7 19:43:32 [initandlisten] db version v1.8.2, pdfile version 4.5 
Tue Feb 7 19:43:32 [initandlisten] git version: nogitversion 
Tue Feb 7 19:43:32 [initandlisten] build sys info: Linux allspice 2.6.24-28-se$ 
Tue Feb 7 19:43:32 [initandlisten] *** warning: spider monkey build without ut$ 
Tue Feb 7 19:43:32 [initandlisten] waiting for connections on port 27017 
Tue Feb 7 19:43:32 [websvr] web admin interface listening on port 28017 
+0

मैं जोड़ लिया है चाहिए कि मैं मोंगो को 199.21.114.XX का प्रयास किया के लिए उम्मीद है कि इस सवाल का जवाब मदद: xxxx –

+0

अद्यतन - उपयोग डोकर और डोकर-लिखें। –

उत्तर

14

आप mongo 199.21.114.XX चलाकर, आईपी (199.21.114.XX) निर्दिष्ट करना होगा।

अन्यथा, यदि आप स्थानीयहोस्ट पर भी सुनना चाहते हैं, तो आपको अपनी कॉन्फ़िगरेशन फ़ाइल में bind_ip सेटिंग को हटा देना चाहिए।

अद्यतन अपनी फ़ायरवॉल कॉन्फ़िगरेशन की जांच करें। चूंकि आप बाहरी आईपी से कनेक्ट हो रहे हैं, इसलिए इसे स्थानीय बॉक्स से भी ब्लॉक करने के लिए कॉन्फ़िगर किया जा सकता है।

+2

अपनी फ़ायरवॉल कॉन्फ़िगरेशन को जांचने के लिए एक अपडेट जोड़ा गया, क्योंकि आप कहते हैं कि आपने पहले से ही कमांड लाइन में आईपी निर्दिष्ट करने का प्रयास किया है। –

+0

फिलहाल वहां एक फ़ायरवॉल कॉन्फ़िगर नहीं है, क्योंकि यह एक खाली सर्वर है। –

+1

क्या आप निश्चित हैं? यदि 'netstat -a' दिखा रहा है कि आप 27017 पर सुन रहे हैं, लेकिन आप 27017 (मोंगो या टेलनेट के माध्यम से) से कनेक्ट नहीं हो सकते हैं, तो शायद फ़ायरवॉल है। नियमों की जांच के लिए 'sudo iptables -L -n'। –

2

डिफ़ॉल्ट रूप से, mongo कंसोल कमांड चलाने से आपके लोकहोस्ट पर मोंगोडब दिखाई देगा, इसलिए 127.0.0.1 आईपी जो आपका स्थानीय लूपबैक है। साथ ही, mongod के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन स्थानीयहोस्ट पर उपलब्ध होना चाहिए। अब तक शुरू करने के लिए इसे बेहतर तरीके से करना बेहतर है, जब तक आप ऑथ चालू नहीं करते हैं। सुनिश्चित करें कि आपके पास ऑथ सक्षम है या आपका डेटाबेस आपके सार्वजनिक आईपी पर खुले तौर पर चल रहा है।

आप एक मेजबान स्थानीय होस्ट के अलावा अन्य को या आपके डिफ़ॉल्ट config से कनेक्ट करना चाहते हैं, तो आप कार्य करें:

mongo <host> 
9
sudo rm /var/lib/mongodb/mongod.lock 
+0

आपने मेरी जान बचाई! आपका बहुत बहुत धन्यवाद! –

+2

ditto - ठीक है शायद मेरा जीवन नहीं, लेकिन निश्चित रूप से मेरे समय का एक घंटे :) – Pyrce

+1

यह मेरे लिए काम किया। बाद में मोंगोड को फिर से शुरू करना पड़ा। सुडो सेवा mongodb पुनरारंभ करें। – csmithmaui

24

मैं अपने /etc/mongod.conf फ़ाइल में निम्न पंक्ति बाहर टिप्पणी करके इस समस्या का समाधान।

# Listen to local interface only. Comment out to listen on all interfaces. 
#bind_ip = 127.0.0.1 

आपको इस कॉन्फ़िगरेशन परिवर्तन को मोंगोड प्रक्रिया को पुनरारंभ करने के साथ पालन करने की आवश्यकता होगी।

sudo service mongod restart 
+0

इसने मेरे लिए काम करने से पहले यहां कुछ अन्य उत्तरों की कोशिश की। क्या कोई मौका है कि भविष्य में मुझे mongod.lock को हटाने या मेरे आईपी टेबल में पोर्ट 27017 पर इनपुट और आउटपुट की अनुमति देने से नकारात्मक नतीजे होंगे? – user137717

+0

बढ़िया! यह काम करता हैं! – Roman

+0

'#bind_ip = 127.0.0.1' को टिप्पणी करने से इसे किसी भी/कहीं भी खुल जाएगा। सुनिश्चित करें कि आपके पास या तो आपके फ़ायरवॉल/iptables अनचाहे कनेक्शन फ़िल्टर कर रहे हैं और/या '' etc/mongod.conf' में 'सुरक्षा: प्रमाणीकरण:' सक्षम ' जोड़ें। अन्यथा, कोई भी/कहीं भी आपके डीबी को लिख सकता है। – rafahoro

1

निम्न चरण मदद मिल सकती है:

  1. खुला टर्मिनल और रन "sudo rm/var/lib/MongoDB/mongod।ताला "
  2. अब चलाने" sudo mongod --repair "
  3. अब" sudo MongoDB शुरूsudo स्थिति MongoDB "
  4. अब सिर्फ MongoDB स्थिति की स्थिति की जांच" "

5 आखिरकार केवल आदेश" mongo "

+0

यह "सुडो स्टेटस मोंगोड" –

3

मुझे मूर्खतापूर्ण गलती के कारण ही यही समस्या थी।

पहले निकालें MongoDB फ़ाइल जो ठीक

rm -rf /tmp/mongodb-27017.sock 

वह जगह है जहाँ मैं गलती /etc/mongod.conf अंदर

# network interfaces 
net: 
    port: 27017 
#bindIp: 127.0.0.1 
bindIp: privateIp 

बजाय

net: 
    port: 27017 
    bindIp: 10.1.2.4 

के सभी को सुनने के लिए किया था उपलब्ध ips

bindIp: [127.0.0.1,10.128.0.2] 

पुनः आरंभ MongoDB

sudo service mongod start 

किसी

+0

मुझे लगता है कि आपका मतलब '' 'sudo service mongodb start''' था। यह भी मेरे लिए ब्रैकेट या अल्पविराम के बाद रिक्त स्थान के साथ काम नहीं करता था। तो मेरा ऐसा था: '' bind_ip: 127.0.0.1,192.168.222.222''' –