Mongod शिकायत करता है कि कोई / डेटा / db फ़ोल्डर नहीं है


474

मैं आज पहली बार अपने नए मैक का उपयोग कर रहा हूं। मैं mongodb.org पर शुरू किए गए गाइड का अनुसरण कर रहा हूं, जब तक कि वह चरण जहां एक / डेटा / डीबी निर्देशिका नहीं बनाता है। btw, मैं homebrew मार्ग का इस्तेमाल किया।

इसलिए मैं एक टर्मिनल खोलता हूं, और मुझे लगता है कि मैं होम डायरेक्टरी जिसे आप "एलएस" कहते हैं, के लिए हूं, मैं डेस्कटॉप एप्लिकेशन मूवीज म्यूजिक पिक्चर्स डॉक्यूमेंट्स और लाइब्रेरी के फ़ोल्डर्स देखता हूं।

तो मैंने ए

mkdir -p /data/db

पहले, यह अनुमति से इनकार करता है। मैं आधे घंटे और अंत में अलग-अलग चीजों की कोशिश करता रहा:

mkdir -p data/db

काम किया। और जब मैं "ls", डेटा की एक निर्देशिका और इसमें निहित एक db फ़ोल्डर मौजूद है।

फिर मैं मोंगॉड फायर करता हूं और यह डेटा / डीबी नहीं मिलने की शिकायत करता है

क्या मैंने कुछ गलत किया?

अब मैंने किया है

sudo mkdir -p /data/db

और जब मैं "ls" करता हूं तो मुझे डेटा dir और db dir दिखाई देता है। db dir के अंदर हालांकि, इसमें कुछ भी नहीं है और जब मैं अब मोंगोड चलाता हूं

Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit: 
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now

EDIT के लिए त्रुटि संदेश प्राप्त करना

sudo chown mongod:mongod /data/db

chown: mongod: Invalid argument

सभी को धन्यवाद!


1
"अमान्य तर्क" का अर्थ है कि मोंगो उपयोगकर्ता के लिए प्रतीकात्मक नाम आपके सिस्टम पर अलग है - आप शायद एक अलग पैकेज का उपयोग कर रहे हैं या MongoDB स्थापित करने के लिए तंत्र स्थापित कर रहे हैं। आपको मूंगो उपयोगकर्ता के प्रतीकात्मक नाम (या uid / gid) के लिए अपनी / etc / passwd और / etc / समूह फ़ाइलों की जाँच करनी चाहिए grep mongo /etc/passwd /etc/group। यदि वह काम नहीं करता है, तो निर्देशिका के मालिक की जाँच करके नाम की जाँच करें ls -ld /var/lib/mongo। या देखने के लिए यूआईडी / gid ऐसा करते हैं: ls -lnd /var/lib/mongo। मेरे मामले में drwxr-xr-x. 6 *487 480* 4096 Sep 20 2011 ...- इसका मतलब है 487: 480 का उपयोग परम के रूप में
तिलो

यूआईडी / जीआईडी ​​का उपयोग करना प्रतीकात्मक नाम का उपयोग करने का पर्याय है। उदाहरण के लिए, बस 'गेंग: उंग / गिद संख्या के साथ मोंगोड को प्रतिस्थापित करें जो आपने ऊपर दी गई विधि के साथ पाया ..
टिलो

अब जब हम जानते हैं कि इस निर्देशिका (डेटा / डीबी) को ठीक से कैसे जोड़ा जाए, तो इस निर्देशिका को पहली बार स्थापना में शामिल क्यों नहीं किया गया?
winux

यदि आप सिर्फ MacOS 10.15 में अपग्रेड हुए हैं, तो यह उत्तर मदद कर सकता है: stackoverflow.com/questions/58283257/…
एडम ज़ेनेर

यदि आपके पास मैक का अंतिम संस्करण है: नए macOS कैटालिना अपडेट के साथ, फ़ोल्डर "/ डेटा / डीबी" केवल-पढ़ने के लिए बन जाता है, आप इसे संशोधित नहीं कर सकते। किसी अन्य फ़ोल्डर में DB बनाने के लिए इस प्रक्रिया का पालन करें: 1) mongod निर्देशिका बदलें: sudo mongod --dbpath / System / Volumes / Data / data / db 2) इसे एक उपनाम दें: अन्य उपनाम: = sudo mongod --dbpath / System ... / वॉल्यूम / डेटा / डेटा / डीबी "
फारबोड अप्रिन

जवाबों:


636

आपने निर्देशिका को गलत जगह बनाया है

/ data / db का अर्थ है कि यह सीधे '/' रूट डायरेक्टरी के अंतर्गत है, जबकि आपने 'data / db' (प्रमुख / के बिना) शायद किसी अन्य डायरेक्टरी के अंदर बनाया है, जैसे '/ root' homedirectory।

आपको इस निर्देशिका को रूट बनाने की आवश्यकता है

या तो आपको उपयोग करने की आवश्यकता है sudo, जैसेsudo mkdir -p /data/db

या आपको su -सुपरयुसर बनने के लिए करने की आवश्यकता है , और फिर निर्देशिका बनाएंmkdir -p /data/db


ध्यान दें:

MongoDB भी एक विकल्प है जहां आप डेटा निर्देशिका को किसी अन्य स्थान पर बना सकते हैं, लेकिन यह आमतौर पर एक अच्छा विचार नहीं है, क्योंकि यह डीबी वसूली जैसी चीजों को थोड़ा जटिल करता है, क्योंकि आपको हमेशा डीबी-पथ को मैन्युअल रूप से निर्दिष्ट करना होगा। मैं ऐसा करने की सलाह नहीं दूंगा।


संपादित करें:

आपको मिलने वाला त्रुटि संदेश "लॉक फ़ाइल बनाने / खोलने में असमर्थ: /data/db/mongod.lock इरनो: 13 अनुमति अस्वीकृत" है । आपके द्वारा बनाई गई निर्देशिका में सही अनुमतियां और स्वामित्व नहीं है - यह MongoDB प्रक्रिया को चलाने वाले उपयोगकर्ता द्वारा लिखने योग्य होना चाहिए।

'/ डेटा / db /' निर्देशिका की अनुमतियों और स्वामित्व को देखने के लिए, यह करें: (यह वही है जो अनुमतियाँ और स्वामित्व आपको दिखेंगे)

$ ls -ld /data/db/
drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/

बाईं ओर 'drwxr-xr-x' उपयोगकर्ता, समूह और अन्य के लिए अनुमतियाँ दिखाता है। 'mongod mongod' से पता चलता है कि कौन निर्देशिका का मालिक है, और कौन सा समूह किस निर्देशिका का है। इस मामले में दोनों को 'मोंगॉड' कहा जाता है।

यदि आपकी '/ data / db' निर्देशिका के पास अनुमतियाँ और स्वामित्व ऊपर नहीं है, तो यह करें :

सबसे पहले देखें कि आपके उपयोगकर्ता के पास कौन सा उपयोगकर्ता और समूह है:

# grep mongo /etc/passwd
mongod:x:498:496:mongod:/var/lib/mongo:/bin/false

आपके पास / etc / passwd में mongod के लिए एक प्रविष्टि होनी चाहिए, क्योंकि यह एक डेमॉन है।

sudo chmod 0755 /data/db
sudo chown -R 498:496 /data/db    # using the user-id , group-id

आप उपयोगकर्ता-नाम और समूह-नाम का उपयोग भी कर सकते हैं, इस प्रकार हैं: (उन्हें / etc / passwd और / etc / समूह में पाया जा सकता है)

sudo chown -R mongod:mongod /data/db 

यह काम करना चाहिए ..

नीचे टिप्पणी में, कुछ लोगों ने इसका इस्तेमाल किया:

sudo chown -R `id -u` /data/db
sudo chmod -R go+w /data/db

या

sudo chown -R $USER /data/db 
sudo chmod -R go+w /data/db

नुकसान यह है कि $ USER एक खाता है जिसमें एक लॉगिन शेल है। डेमों को आदर्श रूप से सुरक्षा कारणों के लिए शेल नहीं होना चाहिए, यही कारण है कि आप ऊपर पासवर्ड फ़ाइल के grep में बिन / गलत देखते हैं।

निर्देशिका अनुमतियों के अर्थ को बेहतर ढंग से समझने के लिए यहां देखें:

http://www.perlfect.com/articles/chmod.shtml

हो सकता है कि आप Google के माध्यम से मिलने वाले किसी एक ट्यूटोरियल को भी देखें: "शुरुआती के लिए UNIX"


2
करने का प्रयास करें ls -ld /data/ और ls -ld /data/db/.. आप बाईं ओर सूचीबद्ध निर्देशिका अनुमतियाँ देखेंगे, फिर स्वामित्व, फिर निर्देशिका नाम। आपको यह सुनिश्चित करना चाहिए कि डायरेक्टरी यूज़र-आईडी द्वारा राइट की गई है जो MongoDB चलाता है।

2
@ तिलो हां मैंने उन्हें किया है। पहला एक, चामोड ठीक हो गया, दूसरा कहता है "चोंड: मोंगोड: अमान्य तर्क"
निक सो

3
यह पूरा सूत्र है जो मैं देख रहा हूं। लेकिन मुझे यह भी समझ में नहीं आ रहा है कि मेरे सिस्टम में यूजर-आईडी और ग्रुप-आईडी क्या है और न ही इस पर कहीं कोई डॉक्यूमेंटेशन है। मैं घुटी हुई मूंगोद पर अटका हुआ हूँ: मोंगॉड भाग के रूप में इसकी वापसीinvalid arguement
ट्रिप

10
अद्यतन मैं sudo touch /data/db/mongod.lockऔर साथ चला गया sudo chmod 0777 /data/db/mongd.lock। उसने ठीक करना शुरू कर दिया।
ट्रिप

141
मेरे लिए चाल चलने sudo chown -R `id -u` /data/dbया sudo chown -R $USER /data/dbकरने की बजायsudo chown mongod:mongod /data/db
heitortsergent

117

निक के रूप में एक ही त्रुटि मिलने के बाद

chown: id -u: अमान्य तर्क

मुझे पता चला कि यह जाहिरा तौर पर उबंटू फ़ोरम के गलत प्रकार के उद्धरण चिह्नों ( बैककॉस्ट्स होने चाहिए ) का उपयोग करने से हुआ था

इसके बजाय मैं सिर्फ इस्तेमाल किया

sudo chown $ USER / डेटा / डीबी

एक विकल्प के रूप में और अब मोंगॉड के पास इसकी आवश्यकताएं हैं।


4
अगर कोई इसे उपयोगी पाता है: मुझे भी यही समस्या थी, लेकिन त्रुटि संदेश थोड़ा अलग था (कहा गया कि समूह 'मोंगॉड' तब मौजूद नहीं है, जब मैंने chown mongod: mongod की कोशिश की) -> हालांकि, chown $ USER का उपयोग करने के लिए काम किया है मुझे, धन्यवाद ...
ट्रिनॉइसिस

6
मुझे इसमें -R जोड़ना था। "सुडो चाउन -R $ USER / डेटा / डीबी"
केविन

1
Newbies के लिए सही जवाब,
Pyae Sone

90

यह मेरे लिए काम करता है, टिप्पणियों में पाया गया:

sudo chown -R $USER /data/db

2
यह भी मेरे लिए। मेरे OSX पर homebrew के माध्यम से mongo स्थापित करना एक mongod उपयोगकर्ता और समूह को नहीं जोड़ता है।
ज़ुकेर

73

फोल्डर बनाएं।

sudo mkdir -p /data/db/

अपने आप को फ़ोल्डर की अनुमति दें।

sudo chown `id -u` /data/db

तब आप mongodबिना चला सकते हैं sudo। OSX Yosemite पर काम करता है


1
नई निर्देशिका बनाने के बजाय मंगोल सेवा को पुनः आरंभ करने का प्रयास करें। जैसे: - सेवा मेंगोड पुनः आरंभ
देवेन्द्र भट्ट

bogdanmac:~ iliebogdanbarbulescu$ sudo chown `id -u` /data/db chown: /data/db: No such file or directory
बिबसी

32

OS X पर उस त्रुटि को ठीक करने के लिए, मैंने सेवा को पुनः आरंभ और बंद कर दिया: $ brew services restart mongodb $ brew services stop mongodb

फिर मैं भागा mongod --config /usr/local/etc/mongod.conf, और समस्या दूर हो गई।

मोंगोडब होमब्रेव पैकेज को अपग्रेड करने के बाद त्रुटि उत्पन्न हुई।


23

मैक पर काढ़ा के माध्यम से स्थापित करना जहां आपका_सुमेर और कर्मचारी समूह है

sudo mkdir -p /data/db
sudo chmod +x+r+w /data/db/
sudo touch /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db
sudo chmod +x+r+w /data/db/mongod.lock
sudo chown YOUR_USER_NAME:staff /data/db/mongod.lock

@MarkusWMahlberg इसके लिए धन्यवाद। यह उन चीजों में से एक है जो अजीब लगा लेकिन काम किया। तो उस फ़ाइल का स्वामी और समूह कौन होना चाहिए?
गाल ब्राचा

जो आपके वितरण पर निर्भर करता है। /etc/passwdउपयोगकर्ता नाम पर एक नज़र डालें - समूह समान होने की संभावना है। यह आमतौर पर mongoया है mongodb
मार्कस डब्ल्यू महलबबर्ग

@MarkusWMahlberg ठीक है - मैंने इसे अब ठीक कर दिया है - काढ़ा बनाने के दौरान यह उपयोगकर्ता और समूह नहीं बनाता है इसलिए मैंने इसे केवल अपने उपयोगकर्ता नाम पर सेट किया है। देखें कि क्या यह अब अधिक सुरक्षित है। धन्यवाद
गैल ब्राचा

धन्यवाद। जब काढ़ा के साथ मैक पर विकसित होता है, तो यह समस्या को ठीक करता है। अधिक सुरक्षा की आवश्यकता नहीं है यदि आप सिर्फ मोंगोडब में परीक्षण डेटा का उपयोग कर रहे हैं। OSM पर @MarkusWMahlberg, यदि आप केवल "mongod &" से इसे शुरू करते हैं, तो mongod चलाने वाला उपयोगकर्ता आपका__ERER_NAME है।
गैसपार्क

22

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

अपने खुद के डेटाबेस का उपयोग करने के लिए (देव या सिर्फ एक अलग):

./bin/mongod --dbpath ~/data/db

क्या यह समझाता है कि यह /etc/mongod.conf में घोषित सेटिंग्स का उपयोग क्यों नहीं करेगा? Ubuntu 16.04 पर 3.6.5 की स्थापना के साथ समस्या थी।
डार्क स्टार 1

वर्बोज़ (-v) मोड में शुरू करने की कोशिश करें या कॉन्फिगरेशन (--config) को स्पष्ट करें: docs.mongodb.com/manual/reference/program/mongod यदि आप apt का उपयोग करके इंस्टॉल करते हैं, तो इसे सर्विस लॉन्ग स्टेटस / स्टार्ट के साथ शुरू करें / stop
loreii

मैं mongo लॉग में देखा था। सभी यह कहते रहे कि / डेटा / डीबी डायरेक्टरी की कमी स्टार्टअप को रोक रही है। आखिरकार आपके जवाब में आया और यह मुद्दों का कारण लगता है?
डार्क स्टार 1

यह विंडोज़ पर लिनक्स-सबसिस्टम में MongoDB का उपयोग करते समय भी काम करता है, जहां वास्तव में fs रूट पर डेटा / db बनाना संभव नहीं है।
hiergiltdiestfu

8

मैं एक मौजूदा Mongodb सेटअप के साथ यह समस्या थी। मुझे अभी भी यकीन नहीं है कि ऐसा क्यों हुआ था, लेकिन किसी कारण से मोंगोड प्रक्रिया mongod.config फ़ाइल नहीं ढूंढ पाई। क्योंकि यह कॉन्फ़िगर फ़ाइल को नहीं ढूँढ सका, उसने DB / in / data / db फ़ाइलों को खोजने की कोशिश की, एक फ़ोल्डर जो मौजूद नहीं था। हालाँकि, कॉन्फ़िगरेशन फ़ाइल अभी भी उपलब्ध थी इसलिए मैंने यह सुनिश्चित किया कि प्रक्रिया में कॉन्फ़िगरेशन फ़ाइल के लिए अनुमतियाँ हैं और इस प्रकार के रूप में --config ध्वज के साथ मोंगॉड प्रक्रिया चलाएं:

mongod --config /etc/mongod.conf

कॉन्फ़िगरेशन फ़ाइल में ही मेरे पास यह सेटिंग थी:

storage:
  dbPath: /var/lib/mongodb

और इस तरह से प्रक्रिया असली DB फ़ोल्डर को फिर से पा सकती है।


1
मैं पुष्टि करता हूं कि यह मेरे साथ हुआ। कॉन्फ़िगरेशन फ़ाइल के बजाय, हम बस --dbpath = / var / lib / mongodb सेट कर सकते हैं। हालांकि मैंने अपना सारा डेटा खो दिया था लेकिन यह अभी भी है।
लेन्हॉक्सुंग

8

मैंने किया

brew install mongodb

2018-02-01 को और जिसने मुझे mongodb3.6.2 संस्करण दिया ।

ऊपर दिए गए ऑरल्यूक के जवाब से उत्साहित होकर मैंने बस कोशिश की

$ brew services restart mongodb

और सब कुछ जीवन में फैल गया। मेरी mongoose.createConnection()पुकार वही हुई जो मैं चाहता था। जीयूआई MongoDB कम्पास , समुदाय संस्करण, जोड़ेगी। मैंने local.startup_logसंग्रह को देखने के लिए कम्पास का उपयोग किया । इसमें एक दस्तावेज़ था, मुझे लॉग इन करना शुरू करना mongoDB सेवा, और यह था

cmdLine:Object
    config:"/usr/local/etc/mongod.conf"

और वास्तव में ऐसी एक फाइल थी:

$ more /usr/local/etc/mongod.conf
systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /usr/local/var/mongodb
net:
  bindIp: 127.0.0.1

और /usr/local/var/mongodbबहुत सारी अस्पष्ट फाइलों के साथ एक निर्देशिका थी । तो ऐसा लगता है कि इंस्टॉलेशन कैसे काम करता है।

मुझे यकीन नहीं है कि brew services restartसेवा को लॉगिन पर चलाने के लिए सेट किया गया है। तो मैंने किया

brew services stop mongodb
brew services start mongodb

और उम्मीद है कि रिबूट के बाद फिर से शुरू होता है। और, वास्तव में, यह किया था। वास्तव में, अब, मुझे लगता है कि प्रारंभिक स्थापना के बाद सही काम करना है

brew services start mongodb

और उस सेवा को शुरू करना चाहिए और रिबूट के बाद इसे पुनः आरंभ करना चाहिए।



7

आपकी कमांड ने वर्तमान फ़ोल्डर में निर्देशिका संरचना बनाई होगी, न कि आपके कंप्यूटर की रूट डायरेक्टरी (जो कि लापता /है)।

पहला कमांड सही था, लेकिन क्योंकि आप एक फ़ोल्डर बनाने की कोशिश कर रहे हैं /, जो एक संरक्षित निर्देशिका है, तो आपको इसके साथ उपसर्ग करने की आवश्यकता है sudo, जो कि "सुपरयूजर डू" के लिए कम है। फिर आपसे आपका पासवर्ड मांगा जाएगा।

तो पूरा कमांड होगा:

$ sudo mkdir -p /data/db

6

आपको / डेटा / डीबी बनाने की आवश्यकता है ... जो कि आपके रूट (यानी / ) में एक निर्देशिका / डेटा / बुलाया है और वहां बुलाया / डीबी / ...

आपको अनुमति त्रुटियां मिल रही हैं, क्योंकि आपको MacOS में अपने रूट dir में एक direcotry बनाने के लिए sudo का उपयोग करने की आवश्यकता है , sudo आपको कमांड को एक प्रशासक के रूप में चलाने देता है।

तो, इसके बजाय इसे चलाएं ...

$ sudo mkdir -p /data/db

यह आपको पासवर्ड के लिए संकेत देगा, यह वही पासवर्ड है जिसका उपयोग आप सिस्टम सेटिंग्स को बदलने के लिए करते हैं (यह छोटा डायलॉग जो आपके द्वारा कोशिश करने पर खुलता है और सिस्टम प्रीलिम्स के लिए चीजों को बदल देता है), और संभवतः आप लॉगिन करने के लिए भी इसका उपयोग करते हैं।


6

आप एक निर्देशिका बनाने की कोशिश कर रहे हैं जिसकी आपको जड़ तक पहुँच नहीं है।

Mongodb के परीक्षण के लिए, मैं अपनी उपयोगकर्ता निर्देशिका से एक निर्देशिका का उपयोग करता हूं जैसे:

cd
mkdir -p temp/
mongod --dbpath .

यह अस्थायी / आपके वर्तमान कार्यशील निर्देशिका से डेटाबेस बना देगा


6

मैं अपने विंडो मैनेजर के साथ / डेटा / डीबी फ़ोल्डर बनाकर इस समस्या को ठीक करता हूं। मैंने इसे करने की कोशिश की, हालांकि पहली बार में टर्मिनल, और रूट निर्देशिका में एक फ़ोल्डर बनाने के लिए, मुझे sudo का उपयोग करना पड़ा।

मैं सिर्फ फाइंडर का उपयोग करके रूट डायरेक्टरी में गया और 'न्यू फोल्डर' का उपयोग करके एक नया फ़ोल्डर बनाया। पूरी तरह से मेरे लिए काम किया।

नोट: मैं OSX का उपयोग कर रहा हूं।


5

बस एक त्वरित नोट:

यदि आपने पहले अनुमतियों को बदले बिना मोंगॉड चलाने की कोशिश की है, तो आपके पास / डेटा / डीबी निर्देशिका में एक मोंगॉड.लॉक फ़ाइल (और कुछ अन्य फाइलें) होगी। आपके द्वारा US $ तक पहुँच प्रदान करने के लिए / डेटा / db निर्देशिका के लिए अनुमतियाँ बदलने के बाद भी, आपको "लॉक फ़ाइल खोलने / बनाने में असमर्थ: /data/db/mongod.lock misno: 13 अनुमति प्राप्त करने में असमर्थ" रहेगा। “त्रुटि। भागो ls -al / data / db और आप शायद देखेंगे कि व्यक्तिगत फ़ाइलों के लिए अनुमतियाँ अभी भी उपयोगकर्ता के लिए रूट करने के लिए सेट की गई हैं, आपके $ USER के लिए नहीं। आपको mongod.lock फ़ाइल और अन्य को भी हटा देना चाहिए। फिर जब आप फिर से मोंगॉड चलाते हैं, तो सब कुछ काम करना चाहिए, और आप यह सत्यापित कर सकते हैं कि फ़ाइल अनुमतियाँ फिर से ls -al चलाकर निर्देशिका अनुमतियों से मेल खाती हैं।


यह एक अच्छा नोट है। मेरे पास लॉक फ़ाइल नहीं थी, लेकिन मुझे अपने डेटा और db फ़ोल्डर के स्वामी को बदलने की आवश्यकता थी।
कार्निकस

5

रूट में डायरेक्टरी बनाएं

sudo mkdir -p /data/db

अब मालिक बदलो

sudo chown -R $USER /data

तुम जाने के लिए अच्छा कर रहे हैं!

mongod

उपयोग करने के बजाय sudo mongod, आपको प्रत्येक पासवर्ड डालने की आवश्यकता नहीं है, लेकिन आपको जो वास्तविक प्रोजेक्ट उपयोग करना चाहिए sudo mongod, उसके लिए सामान्य उपयोगकर्ता को अनुमति न दें!


4

जब मैंने मोंगोडब शुरू करने की कोशिश की तो मुझे निम्नलिखित त्रुटि मिलती रही।

"shutting down with code:100" 

मैं निम्नलिखित कमांड का उपयोग कर रहा था:

./mongod --dbpath=~/mongo-data

मेरे लिए यह तय था कि मुझे "=" चिह्न की आवश्यकता नहीं थी और यह त्रुटि पैदा कर रहा था। तो मैंने किया

./mongod --dbpath ~/mongo-data

बस इसे बाहर फेंकना चाहते थे क्योंकि किसी भी तरह से त्रुटि निर्दिष्ट नहीं करती है कि यह समस्या है। मैंने लगभग ~ / mongo-data निर्देशिका की सामग्री को हटा दिया, यह देखने के लिए कि क्या मदद मिली। ख़ुशी हुई कि मुझे याद आया कि कभी-कभी cli args "=" चिन्ह का उपयोग नहीं करते हैं।


3

इस तारीख तक मैं यह भी सोचता था कि हमें mongod कमांड शुरू करने के लिए उस डेटा / db फ़ोल्डर को बनाने की आवश्यकता है।

लेकिन हाल ही में मैंने सर्विस कमांड के साथ मोंगॉड शुरू करने की कोशिश की और यह मेरे लिए काम कर गया और मुझे / डेटा / डीबी डायरेक्टरी बनाने की कोई आवश्यकता नहीं थी।

service mongod start

मंगोड की स्थिति की जांच करने के लिए आप निम्नलिखित कमांड चला सकते हैं।

service mongod status

3

यह समाधान मेरी समस्या का हल करता है

  1. के रूप में एक निर्देशिका बनाओ

    sudo mkdir -p / data / db

  2. यह db नाम से एक डायरेक्टरी बनाएगा और कमांड से शुरू करने की कोशिश करेगा

    सूद मूंगद

यदि आपको मोंगॉड शुरू करने के साथ कोई अन्य त्रुटि या समस्या मिलती है, तो आपको समस्या के रूप में मिल सकती है

श्रोता को सेट करने में विफल: सॉकेटएक्स अपवाद: पहले से ही उपयोग में पता यदि आप पाते हैं कि आपको एक और त्रुटि के रूप में टर्मिनल पर टाइप करके मंगोल की चल रही प्रक्रिया को मारना है

ps ax | grep mongod
sudo kill ps_number

और मोंगॉड रनिंग पोर्ट ढूंढें और प्रक्रिया को मार डालें। दूसरा तरीका यह है कि मोंगॉड को शुरू करते समय एक स्पैसेफिक पोर्ट बनाया जाए

sudo mongod --port 27018

2

उपलब्ध यूजर आईडी को देखने के लिए टर्मिनल पर "आईडी" टाइप करें, फिर बस टाइप करें

"sudo chown -R idname / data / db"

यह मेरे लिए काम किया! आशा है कि यह आपके मुद्दे को हल करेगा।


2

MongoDB के अधिक वर्तमान संस्करणों में, मेरे पास 3.2.10 है, यह संग्रहीत है डिफ़ॉल्ट रूप से

/var/lib/mongodb


1
रनिंग mongod --dbpath /var/lib/mongodbइन परिस्थितियों में मदद करता है
santiago arizti

1

उपकरण पैकेज को (पुनः) स्थापित करने के बाद, मुझे विंडोज 10 डिवाइस पर एक समान त्रुटि मिली;

initAndListen को छोड़कर: NonExistentPath: डेटा निर्देशिका C: \ data \ db \ n नहीं मिली, समाप्त हो रही है।

सॉल्यूशन सिस्टम के लिए समझाया जाने वाला सॉल्यूशन एनालॉग: केवल फ़ोल्डर बनाना पर्याप्त है mongod.exe(mongoDB सर्वर) शुरू करने में सक्षम होने के लिए ।

सोचा कि मैं इसे उन लोगों के लिए छोड़ सकता हूं जो एक विंडोज डिवाइस पर समान खोज शब्दों के साथ यहां समाप्त होते हैं।


1

मैं यहाँ बताना चाहता था कि यदि आप यह कोशिश करते हैं और आप भाग जाते हैं mkdir: /data/db: Read-only file system, तो कृपया इस टिप्पणी को देखें, जिससे मुझे मदद मिली: https://stackoverflow.com/a/58895373

इस तरह अगर कोई भी इस उत्तर पर है और "केवल पढ़ने के लिए" एफ को नियंत्रित करता है तो वे इसे देखेंगे


0

इस समस्या को बनाने के लिए वास्तव में गूंगा तरीका है, जिसका मैंने बीड़ा उठाया है:

1) थोड़ी देर के लिए अपने mongo इंस्टॉल को छोड़ दें 2) वापस आ जाएं और सर्वर 3 नहीं चल रहा है) इसे शुरू करने का प्रयास करें, लेकिन इस बार sudo का उपयोग न करें 4) mongo डेटा / डीबी / नहीं पा सकता क्योंकि अब इसकी तलाश है उपयोगकर्ता घर घर के बजाय सु घर dir

हां, यह वास्तव में गूंगा है, लेकिन अगर आप सिस्टम पर थे तो यह कुछ समय के लिए हो सकता है।

संक्षिप्त उत्तर: सुनिश्चित करें कि आप उसी निहित होम डायरेक्टरी के साथ मोंगो चलाते हैं

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