2011-05-12 14 views
18

इससे पहले मैं सभी MongoDB डेटा फ़ाइलों को संग्रहीत किया गया था/var/lib/MongoDB directory..and /etc/mongodb.conf में dbpath प्रविष्टि था/var/lib/MongoDB ..MongoDB डेटा निर्देशिका अनुमतियाँ

में अब मैं डेटा निर्देशिका को /vol/db में बदलना चाहता हूं .. इसलिए मैंने निर्देशिका/वॉल्यूम/डीबी बनाई है और सुडो चाउन -आर id -u/वॉल/डीबी का उपयोग करके अनुमतियां बदल दी हैं और डीबी पथ प्रविष्टि को/vol/db में बदल दिया है /etc/mongodb.conf

अब जब मैं sudo सेवा का उपयोग कर MongoDB शुरू MongoDB start..i /var/log/mongodb/mongodb.log

में इस त्रुटि हो रही है

मुझे मदद चाहिए .. मैं गलत हूं?

+0

मैं सुडो चाउन -आर आईडी-यू/वॉल/डीबी और सुडो चोउन -आर उपयोगकर्ता नाम का उपयोग कर रहा हूं: उपयोगकर्ता नाम/वॉल्यूम/डीबी –

+1

क्या आप एलएस -ल्ट्रह/वॉल्यूम और एलएस -ल्ट्र/वॉल/डीबी के आउटपुट पेस्ट कर सकते हैं? – lobster1234

+0

मुझे एक ही समस्या है, अगर आप इसे हल कर चुके हैं तो क्या आप जवाब दे सकते हैं? – zubinmehta

उत्तर

27

मुझे एक ही समस्या थी, लेकिन इसे हल करने में सक्षम था similar question के लिए धन्यवाद। आपको यह सुनिश्चित करना होगा कि /vol/db/ का स्वामित्व mongodb है।

sudo chown -R mongodb:mongodb /vol/db/ 

आप त्रुटि chown: invalid user: 'mongodb:mongodb' मिलता है, जाँच /etc/passwd अगर वहाँ एक समान उपयोगकर्ता है कि मौजूद है को देखने के लिए (उदा। mongod)।

+2

क्या होगा यदि मुझे एक अवैध उपयोगकर्ता त्रुटि मिलती है और मेरे सेवा नाम 'mongod' के मामले में समान – TMin

+0

जैसा/etc/passwd में कुछ भी नहीं है, तो मेरा उपयोगकर्ता: समूह क्या होगा? – Darpan

+0

शायद mongod, कोशिश करें: समूह mongod – igorludi

4

यदि नए डीबी पथ की अनुमतियों और स्वामित्व को बदलने के बाद, आप अभी भी इस समस्या को देख रहे हैं, तो getenforce चलाएं यह देखने के लिए कि क्या आप SELinux को लागू मोड में चल रहे सिस्टम का उपयोग कर रहे हैं या नहीं। यदि getenforce 'लागू करने' देता है, तो संभवतः selinux अनुमति त्रुटि का कारण है, क्योंकि mongodb अब इसके मूल संदर्भ दायरे से बाहर चल रहा है क्योंकि डीबी स्थान/var/lib/से बदल गया है ...

मैं नहीं करता 'टी विवरण पता है, लेकिन एक जानवर बल रास्ता फिर नए संदर्भ के लिए अपने स्वयं के SELinux नीति लेखन के बिना है समस्या को हल करने के लिए बस SELinux बंद करने के लिए: -/

sudo setenforce 0 

आदर्श रूप में, आप कैसे तय करेंगे यदि आप उत्पादन में भाग लेने की योजना बना रहे हैं तो सेलिनक्स नीति को अपडेट करने के लिए।

15

सबसे आसान होगा

sudo chmod 777 /data/db 
+0

यह मेरे लिए काम किया .. जब मैं सुडो चाउन मोंगोडब चला गया: mongoDB/vol/db मुझे प्राप्त हुआ: "अवैध समूह नाम" ... इस समाधान ने – hanzolo

+0

काम किया है, मुझे हांज़ोलो के समान मिला है। यह मेरे लिए काम किया। – MLyck

+8

यह आदेश प्रश्न में निर्देशिका के लिए बहुत खुली अनुमति देगा।@ केज़ारेरेक्स ('सुडो चाउन मोंगोडब: मोंगोडब/डेटा/डीबी') का उत्तर अनुमतियों को इतनी व्यापक रूप से खोलने के बिना वांछित प्रभाव होना चाहिए। –

1

मैं क्या त्रुटि है की जाँच करने के पढ़ने मोंगो लॉग

tail -50 /var/log/mongodb/mongodb.log 

आप तुरंत (अनुमति भी शामिल होते हैं) समस्या पा सकते हैं

0

प्रयास से सुझाव है निम्नलिखित:

$ sudo chmod 755 /vol/db && sudo chown $USER /vol/db 
संबंधित मुद्दे