मैक पर mddir / data / db का प्रयास करने पर केवल फ़ाइल सिस्टम पढ़ें


113

मैं मुख्य निर्देशिका में एक नया फ़ोल्डर बनाने की कोशिश कर रहा हूं

सभी प्रकार के उदाहरणों की कोशिश की

sudo mkdir /data/db

sudo mkdir -p /data/db

मैं मिलता रहा

mkdir: / data: रीड ओनली फाइल सिस्टम


1
stackoverflow.com/questions/58283257/… यह नीचे टिप्पणी का जवाब देता है।
कैमिली

जवाबों:


156

यदि आपके पास मैक है और कैटालिना से अपडेट किया गया है तो रूट फोल्डर अब अधिक लिखने योग्य नहीं है।

मैंने अभी निर्देशिका को कहीं और बदल दिया है।

अभी के लिए इस आदेश का उपयोग कर रहा है

mongod --dbpath=/Users/user/data/db

4
क्या इसे स्थायी बनाने का कोई तरीका है? मुझे हर बार MongoDB सर्वर शुरू करने के बाद इसे टाइप करना होगा!
AV पॉल

2
@AVPaul शायद सबसे अच्छा समाधान नहीं है, लेकिन आप एक उपनाम बना सकते हैं जो आपके मार्ग को संदर्भित करता है।
DjangoBlockchain

1
@JeffGoes मुझे लगता है कि आपने उपयोगकर्ता को वास्तविक नाम से प्रतिस्थापित नहीं किया है।
अमन

2
@AlexL यह मेरे लिए भी काम कर रहा है। लेकिन क्या मुझे mongod --dbpath = / Users / my_USER_name / data / db टाइप करना है जो मुझे अपना देव मोंगो db चलाना है? क्योंकि अगली बार जब मैं मोनगोड चलाता हूं, तो यह कह रहा है / डेटा / डीबी नहीं मिला
शोएब मिर्जा

3
यदि आप मैक का उपयोग कर रहे हैं, तो आप इसे musoDB config फाइल में dbPath सेट करके स्थायी बना सकते हैं। यह /usr/local/etc/mongod.conf के अंतर्गत है। फिर निम्नलिखित जोड़ें: "भंडारण: dbPath: अपने db निर्देशिका के लिए पथ"
सामोक्स

81

आधिकारिक डॉक्स से https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

होमब्रे को स्थापित करें और निम्नलिखित कमांड चलाएं

sudo chown -R $(whoami) $(brew --prefix)/*

फिर

brew tap mongodb/brew

फिर

brew install mongodb-community@4.2

तथा

brew services start mongodb-community

या

mongod --config /usr/local/etc/mongod.conf

फिर

ps aux | grep -v grep | grep mongod

तथा

mongo

सत्यापित करने के लिए आप show dbsमानगो शेल में चला सकते हैं


काढ़ा सेवाएं मोंगोडब-समुदाय शुरू करें => त्रुटि: फॉर्मूला mongodb-communityस्थापित नहीं है। आपको लॉन्च करना होगा: काढ़ा सेवाएं mongodb/brew/mongodb-community@4.2 शुरू करें
Andresse Njeungoue

18

नए macOS कैटालिना अपडेट के साथ, फ़ोल्डर /data/dbकेवल पढ़ने योग्य हो जाता है, आप इसे संशोधित नहीं कर सकते। किसी अन्य फ़ोल्डर में DB बनाने के लिए इस प्रक्रिया का पालन करें:

  1. mongodनिर्देशिका बदलें :

    sudo mongod --dbpath /System/Volumes/Data/data/db

  2. इसे इस रूप में उपयोग करने के लिए एक उपनाम दें mongod:

    alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"

  3. mongodअपने टर्मिनल में बस टाइप करें, यह काम करना चाहिए।

अतिरिक्त => यदि आपको इसे वर्तमान उपयोगकर्ता अधिकार देने की आवश्यकता है, तो कोड की इस पंक्ति का उपयोग करें:

sudo chown -R $(whoami) /System/Volumes/Data/data/db

(बस जानकारी के लिए -> $(whoami)केवल एक चर है जो आपके वर्तमान उपयोगकर्ता को लौटाता है)


1
मैंने यह चरण 1: sudo mkdir -p /System/Volumes/Data/data/db&& से पहले किया था sudo chown -R `id -un` /System/Volumes/Data/data/db। सुनिश्चित नहीं हैं कि ये फ़ोल्डर पहले से मौजूद हैं, लेकिन इस के साथ @ xgqfrms का उत्तर संयुक्त है। इसके लिए बहुत बहुत धन्यवाद, मुझे पागल कर रहा था।
ट्विनकैब

11

मोंगोड dbफ़ोल्डर के पथ का स्थायी परिवर्तन करने के लिए ।

इन डॉक्स के बाद वे मोटे तौर पर यह कहते हैं। यदि मोंगॉड को काढ़ा सेवाओं के साथ शुरू किया जाता है:

$ brew services start mongodb-community@4.2

यह पथ पर कॉन्फ़िगर फ़ाइल का उपयोग करेगा /usr/local/etc/mongod.conf


इसे ठीक करने के लिए, कॉन्फ़िग फ़ाइल को संपादित करें:

$ vim /usr/local/etc/mongod.conf

और dbPathइस तरह अपने घर निर्देशिका के लिए उदा बदलें :

systemLog:
  destination: file
  path: /usr/local/var/log/mongodb/mongo.log
  logAppend: true
storage:
  dbPath: /Users/<username>/data/db
net:
  bindIp: 127.0.0.1 

फ़ाइल सहेजें और काढ़ा के साथ फिर से शुरू करें:

$ brew services restart mongodb-community@4.2

1
यह मेरे लिए काम नहीं किया, मोंगो अभी भी / डेटा / डीबी में
दिख रहा है

@Xen_mar क्या आप फ़ाइल को संपादित करने के बाद मंगोल चलाने की कोशिश कर रहे थे? जाहिर है mongod पहले से ही काढ़ा सेवाओं द्वारा चलाया जाता है शुरू
जे ई सी

5

इसलिए, macOS कैटालिना के साथ Apple ने सुरक्षा उद्देश्यों के लिए एक नया वॉल्यूम बनाया। यदि आप macOS कैटालिना पर हैं, तो आपको /data/dbफ़ोल्डर बनाना होगा System/Volumes/Data

इन आदेशों का पालन करें

  1. sudo mkdir -p /System/Volumes/Data/data/db
  2. sudo chown -R id -un /System/Volumes/Data/data/db

MongoDB प्रारंभ करें

  1. brew services run mongodb-community

  2. आनंद लें 😉


4

अब आप Mac Catalina पर रूट डायरेक्टरी पर फोल्डर नहीं बना सकते हैं!

https://www.apple.com/macos/catalina/features/

समर्पित प्रणाली की मात्रा

macOS कैटालिना एक समर्पित, केवल-पढ़ने के लिए सिस्टम वॉल्यूम में चलता है - जिसका अर्थ है कि यह अन्य सभी डेटा से पूरी तरह से अलग है और macOS की विश्वसनीयता में सुधार करने में मदद करता है।

# macOS Catalina, mkdir path
$ sudo mkdir -p /System/Volumes/Data/data/db

# give permissions
$ sudo chown -R `id -un` /System/Volumes/Data/data/db

# macOS 10.14.x -
$ sudo mkdir -p /data/db

# macOS 10.15.x +
$ sudo mkdir -p /System/Volumes/Data/data/db

refs

https://discussions.apple.com/thread/250720711

https://zellwk.com/blog/install-mongodb/

https://www.youtube.com/watch?v=DX15WbKidXY


3

यह मेरे लिए काम कर रहा है क्योंकि मैं एक उडेमी पाठ्यक्रम से गुजर रहा था: 1. अपने टर्मिनल में इसे टाइप करके होमब्री स्थापित करें

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. अपने पुराने / डेटा / db फ़ोल्डर को स्थानांतरित करें (यदि आप अपने वर्तमान dbs का बैकअप लेना चाहते हैं) एक गैर रूट फ़ोल्डर में और अगले चरण के साथ आगे बढ़ें

  2. टर्मिनल में भागो ए) brew uninstall mongodb बी) अगर जरूरत रन brew uninstall --force mongodb सी) brew tap mongodb/brew डी) brew install mongodb-community ई)brew services start mongodb/brew/mongodb-community

  3. अब आपको टर्मिनल में मोंगो चलाने की आवश्यकता है और आप मोंगो शेल प्रतीक देखेंगे>।

कृपया मुझे बताएं कि क्या यह काम करता है?) इस लेख के आधार पर, मुझे यह पता लगाने में लगभग 2 घंटे लग गए: /apple/362883/mongodb-doesnt-work-after-update-to -macos-Catalina-10-15

चीयर्स, रेडू


3

यदि आप मैक पर हैं और समस्या का सामना कर रहे हैं तो नीचे कमांड उपयोगी है, whoamiचर को वर्तमान उपयोगकर्ता मिलेगा

mongod --dbpath=/Users/$(whoami)/data/db

3

मेनगोडब-समुदाय फॉर्मूला के लिए डिफ़ॉल्ट पथ

MongoDB सर्वर और उपकरण बायनेरिज़ को स्थापित करने के अलावा, मोंगोडब-कम्युनिटी फॉर्मूला बनाता है:

  • एक कॉन्फ़िगरेशन फ़ाइल: /usr/local/etc/mongod.conf
  • एक लॉग निर्देशिका पथ: / usr / स्थानीय / var / लॉग / mongodb
  • एक डेटा निर्देशिका पथ: / usr / स्थानीय / var / mongodb

तब इसने मेरे लिए काम किया:

mkdir -p usr/local/var/mongodb/data/db

2

आप एक /data/निर्देशिका नहीं बना सकते । यह APFS फाइल सिस्टम के लिए आरक्षित है। इस मुद्दे के बारे में बॉम्बिक के ब्लॉग की जाँच करें ।


तो, क्या यह केवल-पढ़ने के लिए फ़ाइल समस्या हल हो सकती है? मुझे एक ही समस्या है
ज़ैनब हम्मामी

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

2

इसे मैने किया है:

mkdir -p usr/local/var/mongodb/data/db

नए रास्ते के बाद से "usr / स्थानीय / var / mongodb" है।


2

मैं एक नुकसान में हूं कि Apple ने ऐसा क्यों किया .. तो अब, हम उनके अलावा कोई रूट स्तर की निर्देशिका नहीं कर सकते हैं? इसका कोई मतलब नहीं है और रूट विशेषाधिकारों के साथ बनाने वाले लोग उन फ़ोल्डरों को जानते हैं कि वे क्या कर रहे हैं


1

MacOS कैटालिना के साथ, अब आप केवल-पढ़ने के लिए सिस्टम वॉल्यूम में फ़ाइलों या डेटा को स्टोर नहीं कर सकते, न ही कमांड लाइन से "रूट" डायरेक्टरी (/) को लिख सकते हैं, जैसे कि टर्मिनल के साथ।


1

डेविड बक ने यहां जो लिखा है , उसे जोड़ने के लिए , पहले आपको वास्तव में निर्देशिका बनाना होगा। आप ऐसा कर सकते हैं:

sudo mkdir / System / Volumes / डेटा / डेटा / डीबी

यदि आपको यह त्रुटि मिल रही है:

"त्रुटि पार्सिंग कमांड लाइन: गैर-मान्यता प्राप्त विकल्प '--dbpath / System / Volumes / Data / data / db' अधिक जानकारी के लिए 'mongod --help' आज़माएं"

उपनाम बनाने के बाद, यह सिर्फ इसलिए है क्योंकि डेविड बक (वास्तव में उपयोगी टिप्पणी करते समय) ने अपने जवाब में एक जगह को याद किया।

इसे ठीक करने के लिए, टाइप करें

अनलियास मोन्गोड

और फिर टाइप करें

उर्फ मोंगोड = "सुडो मोंगॉड - डीबीपैथ / सिस्टम / वॉल्यूम / डेटा / डेटा / डीबी"


यह मैं नहीं था ... क्रेडिट यूजीन बेलिआव को जाना चाहिए। मैंने सिर्फ फॉर्मेटिंग के लिए उनके उत्तर को संपादित किया ...
डेविड बक

0

मैक संस्करण कैटालिना ने बनाया रूट फ़ोल्डर अब लिखने योग्य नहीं है।

ब्रू में एक नया पथ (जो इसे स्वयं बनाता है) का उपयोग करने के लिए मोंगोडब का एक अद्यतन संस्करण है, /usr/local/var/mongodbऔर इन निर्देशों का पालन करने से समस्या ठीक हो जाएगी:

अद्यतन mongodb- समुदाय-संस्करण स्थापित करने के लिए गाइड

brew install mongodb-community@VERSION जहां फिक्स के साथ पहला संस्करण 4.2 है


0

मैं उत्प्रेरक पर मोंगोडेब स्थापित करने और चलाने के लिए सरल चरणों के साथ एक जिस्ट बनाता हूं

# install homebrew (https://brew.sh/) and run the following commands
sudo chown -R $(whoami) $(brew --prefix)/*
brew tap mongodb/brew
brew install mongodb-community@4.2

## --- aliases to set in your zshrc file

# open your zshrc file
open ~/.zshrc
# copy and paste shorcuts in the end of the file
alias mongod='brew services run mongodb-community'
alias mongod-start='brew services start mongodb-community' #will start MongoDB automatically when you login into your Macbook
alias mongod-status='brew services list'
alias mongod-stop='brew services stop mongodb-community'

# restart your terminal
# type mongod in your terminal for run service & mongod-stop for finish it
# test your mongodb connection with
mongo
show dbs

https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799

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