यह मुख्य त्रुटि है:
<ब्लॉकक्वॉट>initAndListen में अपवाद:NonExistentPath:डेटा निर्देशिका/डेटा/डीबी नहीं मिला।, समाप्त हो रहा है
कैटालिना में एक आश्चर्यजनक बदलाव आया है:यह रूट डायरेक्टरी में बदलाव की अनुमति नहीं देगा (इस पर फोरम थ्रेड में भी चर्चा की गई थी):
% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system
दुर्भाग्य से, यह ऐप्पल के कैटालिना रिलीज नोट्स में स्पष्ट रूप से नहीं लिखा गया है, कैटालिना सुविधाओं में एक संक्षिप्त उल्लेख के अलावा:
<ब्लॉकक्वॉट>macOS Catalina एक समर्पित, रीड-ओनली सिस्टम वॉल्यूम में चलता है
चूंकि निर्देशिका /data/db
MongoDB डिफ़ॉल्ट के रूप में कोडित है, एक भिन्न dbpath
. निर्दिष्ट करने के लिए एक वैकल्पिक हल है जो रूट डायरेक्टरी पर स्थित नहीं है। उदाहरण के लिए:
mongod --dbpath ~/data/db
यह मोंगोडीबी के डेटा को आपके होम डायरेक्टरी में रखेगा। बस सुनिश्चित करें कि पथ ~/data/db
वास्तव में मौजूद है।
वैकल्पिक तरीका
एक वैकल्पिक तरीका यह है कि brew
का लाभ उठाकर macOS पर MongoDB सामुदायिक संस्करण स्थापित करें के निर्देशों का पालन किया जाए। :
brew tap mongodb/brew
brew install mongodb-community
यह डिफ़ॉल्ट रूप से कुछ अतिरिक्त फ़ाइलें बनाएगा:
- कॉन्फ़िगरेशन फ़ाइल (/usr/local/etc/mongod.conf)
- लॉग निर्देशिका पथ (/usr/local/var/log/mongodb)
- डेटा निर्देशिका पथ (/usr/स्थानीय/var/mongodb)
mongod
चलाने के लिए आप या तो कर सकते हैं:
-
कमांड लाइन से मैन्युअल रूप से कमांड चलाएँ (इसे सुविधा के लिए उपनाम दिया जा सकता है):
mongod --config /usr/local/etc/mongod.conf
-
brew services
. का उपयोग करके MongoDB को एक सेवा के रूप में चलाएँ . ध्यान दें कि यह MongoDB को एक स्टैंडअलोन नोड (प्रतिकृति सेट नहीं) के रूप में चलाएगा, इसलिए ऐसी सुविधाएँ जो oplog पर निर्भर करती हैं उदा। जब तक आपmongod
. को संशोधित नहीं करते, तब तक चेंजस्ट्रीम काम नहीं करेगा कॉन्फ़िगरेशन फ़ाइल:brew services start mongodb-community