MongoDB अपने डेटा को संग्रहीत करने के लिए किस स्थान का उपयोग करता है?


13

मैंने यह डेटा संग्रहीत करने के लिए MongoDB कॉन्फ़िग फ़ाइल को संपादित किया है /home/user/data/mongod

लेकिन डेटा अभी भी पुरानी निर्देशिका को लिखा गया है, माना जाता है कि नए फ़ोल्डर को अनुमति नहीं दी गई है - मैं उस निर्देशिका के लिए आवश्यक अनुमतियों को MongoDB कैसे दे सकता हूं?


1
आपने अपने कॉन्फ़िगरेशन को कैसे संपादित किया? आपको लगता है कि यह अनुमतियों के साथ एक समस्या क्यों है? आपको क्यों लगता है कि मानगो त्रुटि को फेंकने के बजाय डिफ़ॉल्ट निर्देशिका का उपयोग करता है? (यह पूछने का एक तरीका है: क्या आपने त्रुटियों को लॉग फ़ाइल की जाँच की है?)
एंड्रिया कोरबेलिनी

जवाबों:


29

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

  1. संपादित करें /etc/mongodb.confऔर पंक्ति dbpath=/var/lib/mongodbको उस पथ पर बदलें जो आप चाहते हैं, जैसेdbpath=/home/user/data/mongodb
  2. mongodbउपयोगकर्ता को इसे लिखने की अनुमति देने के लिए अपने चुने हुए मार्ग की अनुमतियों को अपडेट करें , जैसेchown $USER -R /home/user/data/mongodb
  3. चलकर MongoDB सेवा को पुनरारंभ करें sudo service mongodb restart

ध्यान दें कि यदि आपके पास पुराने स्थान पर कोई डेटा है जिसे आप रखना चाहते हैं, तो आपको पहले MongoDB सेवा को रोकना होगा, फ़ाइलों को मैन्युअल रूप से स्थानांतरित करना होगा और फिर सेवा को फिर से शुरू करना होगा।

MongoDB सर्वर उपयोग को रोकने के लिए sudo service mongodb stop


मुझे किन फ़ाइलों को स्थानांतरित करने की आवश्यकता है?
चॉवी

@chovy भंडारण निर्देशिका में फ़ाइलें।
डेविड एडवर्ड्स

मैंने सब कुछ हटा दिया/var/lib/mongodb
chovy

@chovy तब आपने शायद अपना सारा डेटा डिलीट कर दिया हो, अगर आपके पास कोई था, और कोई फाइल नहीं है जिसे आप स्थानांतरित कर सकते हैं।
डेविड एडवर्ड्स

हाँ वह ठीक है। मुझे इसे बचाने की आवश्यकता नहीं थी। मुझे यकीन नहीं था कि अगर वहां गैर-डेटा फाइलें थीं जो मुझे चाहिए थीं। जाहिरा तौर पर नहीं क्योंकि यह अभी भी काम करने लगता है
chovy

1

प्रभावी होने के लिए आपको डेमॉन को पुनः आरंभ करने की आवश्यकता है।

sudo service mongodb restart

तिवारी फिर से शुरू मैं तुम्हें बहुत तरीके दे। पुराना तरीका: "etc / init.d / mongodb restart", नया तरीका: "sudo service mongodb restart"
सिरिल ALFARO

1
मैं उस जानकारी को शामिल करने के लिए आपके उत्तर को संपादित करने की सलाह देता हूं।
एलिया कगन

1

यदि आप कमांड लाइन से मोंगॉडब शुरू करते हैं, तो आप --dbpathतर्क का उपयोग कर सकते हैं : mkdir mydata && mongod --dbpath mydata आप "फाइल मौजूद है" या कुछ के साथ संबंधित किसी समस्या में भाग सकते हैं, यह MongoDb की एक अच्छी तरह से ज्ञात सीमा है, यहां इस पर और अधिक । बस डिस्क ड्राइव बदलें और परीक्षण करें यदि अब आपके पास वह मुद्दा फिर से नहीं है।


1

मैं आज उसी मुद्दे पर भागा और मैंने निम्नलिखित चरणों का उपयोग करके इस मुद्दे को हल किया।

  1. Mongod.conf फ़ाइल संपादित करें और dbPath चर मान संपादित करें।

    sudo -H gedit /etc/mongod.conf
    
  2. फिर मोंगॉड सेवा शुरू करने के लिए निम्नलिखित कमांड का उपयोग करें

    sudo mongod --dbpath "your db path"
    

    मैंने बिना आदेश के ऊपर चलने की कोशिश की sudoऔर मुझे एक त्रुटि मिली। इसलिए sudoकमांड चलाने के लिए उपयोग करें।


0

mv / var / lib / mongodb (निर्देशिका जो आपने डेटा सहेजा है) / पथ और chown मोंडब: mongodb / path (वह निर्देशिका जिसे आप डेटा सहेजना चाहते हैं)

/etc/mongod.conf संपादित करें

mongod पुनरारंभ सेवा (यदि कनेक्ट नहीं हो सकती है, तो mongod.lock को शामिल न करें / पथ की जांच करें, यदि यह मौजूद है, तो इसे हटा दें और फिर से पुनरारंभ करें)


इसका मोंगोडब: मोंगोडब मुझे लगता है .. !!
लक्ष्मण पिलका
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.