यह मुख्य त्रुटि है:
<ब्लॉकक्वॉट>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