Mac에서 mkdir / data / db를 시도 할 때 읽기 전용 파일 시스템


114

기본 디렉터리에 새 폴더를 만들려고합니다.

모든 종류의 예제를 시도했습니다.

sudo mkdir /data/db

sudo mkdir -p /data/db

나는 계속

mkdir : / data : 읽기 전용 파일 시스템


1
stackoverflow.com/questions/58283257/… 이것은 아래 댓글에 대한 답변입니다.
카밀

답변:


157

Mac이 있고 Catalina로 업데이트 된 경우 루트 폴더보다 더 이상 쓸 수 없습니다.

다른 곳에서 디렉토리를 변경했습니다.

지금은이 명령을 사용했습니다.

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

4
영구적으로 만드는 방법이 있습니까? MongoDB 서버를 시작할 때마다 입력해야합니다!
AV Paul

2
@AVPaul 아마도 최상의 솔루션은 아니지만 경로를 참조하는 별칭을 만들 수 있습니다.
DjangoBlockchain

1
@JeffGoes 사용자를 실제 이름으로 바꾸지 않았다고 가정합니다.
Aman

2
@AlexL 저에게도 효과가 있습니다. 하지만 dev mongo db를 실행할 때마다 mongod --dbpath = / Users / my_USER_name / data / db를 입력해야합니까? 내가 mongod를 실행하면 다음 번에,이 말 때문에 / 데이터 / DB를 찾을 수 없습니다
Shoeb 미르자

3
mac을 사용하는 경우 mongoDB 구성 파일에서 dbPath를 설정하여 영구적으로 만들 수 있습니다. /usr/local/etc/mongod.conf. 그런 다음 다음을 추가하십시오. "스토리지 : dbPath : db 디렉토리 경로"
Samoox

81

공식 문서 https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/에서

homebrew를 설치 하고 다음 명령을 실행하십시오.

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 dbsmongo 셸에서 실행할 수 있는지 확인하려면


brew services start mongodb-community => 오류 : 공식 mongodb-community이 설치되지 않았습니다. 시작해야합니다 : 양조 서비스 start mongodb/brew/mongodb-community@4.2
Andresse Njeungoue

20

새로운 macOS Catalina 업데이트를 사용하면 폴더 /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터미널에 입력 하기 만하면 작동합니다.

Extra => 현재 사용자 권한을 부여해야하는 경우 다음 코드 줄을 사용하십시오.

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의 대답을 이것과 결합했습니다. 이것에 대해 정말 감사하고 나를 미치게 만들었습니다.
twknab

11

mongod db폴더 의 경로를 영구적으로 변경 합니다.

이 문서 를 따라 그들은 대략 이것을 말합니다. mongod가 brew 서비스로 시작되는 경우 :

$ brew services start mongodb-community@4.2

경로에서 구성 파일을 사용합니다. /usr/local/etc/mongod.conf


이 문제를 해결하려면 구성 파일을 편집하십시오.

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

그리고 dbPatheg를 다음과 같이 홈 디렉토리로 변경하십시오 .

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로 mongod를 다시 시작하십시오.

$ brew services restart mongodb-community@4.2

1
이것은 나를 위해 작동하지 않았다,
mongo

@Xen_mar 파일을 편집 한 후 mongod를 실행하려고 했습니까? 분명히 mongod 이미 BREW 서비스로 실행되는 시작
JEC

5

따라서 macOS Catalina를 사용하여 Apple은 보안 목적으로 새로운 볼륨을 만들었습니다. 당신이 맥 OS 카탈리나에 있다면, 당신은 만들어야 /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 Catalina는 읽기 전용 전용 시스템 볼륨에서 실행됩니다. 즉, 다른 모든 데이터와 완전히 분리되어 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

심판

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

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

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


3

다음은 Udemy 과정을 수강하는 동안 저에게 효과적이었습니다. 1. 터미널에 이것을 입력하여 HomeBrew를 설치합니다.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  1. 이전 / data / db 폴더 (현재 DB를 백업하려는 경우)를 루트가 아닌 폴더로 이동하고 다음 단계를 진행합니다.

  2. 터미널에서 실행 a) brew uninstall mongodb b) 필요한 경우 실행 brew uninstall --force mongodb c) brew tap mongodb/brew d) brew install mongodb-community e)brew services start mongodb/brew/mongodb-community

  3. 이제 필요한 것은 터미널에서 mongo를 실행하는 것입니다. 그러면 mongo shell 기호>가 표시됩니다.

이것이 작동하는지 알려주세요;) /apple/362883/mongodb-doesnt-work-after-update-to를 기반으로 알아내는 데 거의 2 시간이 걸렸습니다. -macos-catalina-10-15

건배, 라두


3

Mac에서 문제가 발생하면 아래 명령이 유용하며 whoami변수는 현재 사용자를 가져옵니다.

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

3

mongodb-community 공식의 기본 경로

MongoDB 서버 및 도구 바이너리를 설치하는 것 외에도 mongodb-community 공식은 다음을 생성합니다.

  • 구성 파일 : /usr/local/etc/mongod.conf
  • 로그 디렉토리 경로 : / usr / local / var / log / mongodb
  • 데이터 디렉토리 경로 : / usr / local / var / mongodb

그런 다음 그것은 나를 위해 일했습니다.

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

2

/data/디렉토리를 생성 할 수 없습니다 . APFS 파일 시스템 용으로 예약되어 있습니다. 이 문제에 대한 Bombich의 블로그를 확인하십시오 .


그렇다면이 읽기 전용 파일 문제를 해결할 수 있습니까? 나도 같은 문제가 있습니다
Zainab Hammami

2
아니요, 디렉터리에 다른 이름을 사용해야합니다. 가능한 해결책은 루트 디렉토리로 허용되는 다른 디렉토리 안에 데이터 디렉토리를 만드는 것입니다.
jvarela

2

저는 이것을 했어요:

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

"usr / local / var / mongodb"라는 새 경로부터.


2

나는 애플이 왜 그렇게했는지를 잃어 버렸다. 이제 우리는 그들의 것 외에 다른 루트 레벨 디렉토리를 가질 수 없다. 이것은 의미가 없으며 루트 권한으로 만든 사람들은 해당 폴더가 무엇을하고 있는지 알고 있습니다.


1

macOS Catalina를 사용하면 더 이상 읽기 전용 시스템 볼륨에 파일이나 데이터를 저장할 수 없으며 터미널과 같은 명령 줄에서 "루트"디렉토리 (/)에 쓸 수 없습니다.


1

David Buck이 여기 내용을 추가하려면 먼저 실제로 디렉토리를 만들어야합니다. 다음과 같이 할 수 있습니다.

sudo mkdir / System / Volumes / Data / data / db

이 오류가 발생하는 경우 :

"명령 줄 구문 분석 오류 : 인식 할 수없는 옵션 '--dbpath / System / Volumes / Data / data / db'자세한 내용은 'mongod --help'를 시도하십시오."

별칭을 만든 후 David Buck (정말 유용한 댓글을 작성하는 동안)이 답변에 공백을 놓 쳤기 때문입니다.

이 문제를 해결하려면 다음을 입력하십시오.

unalias mongod

그런 다음 입력

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


내가 아니었다 ... 신용은 Eugène Beliaev에게 가야한다. 난 그냥 ... 포맷에 대한 자신의 대답을 편집
데이비드 벅에게

0

Mac 버전 Catalina가 만든 루트 폴더는 더 이상 쓸 수 없습니다.

Brew에는 새로운 경로 (자체 생성)를 사용하기 위해 업데이트 된 버전의 mongodb가 있습니다. /usr/local/var/mongodb 있으며 다음 지침을 따르면 문제가 해결됩니다.

업데이트 된 mongodb-community-edition 설치 가이드

brew install mongodb-community@VERSION 수정 된 첫 번째 버전은 4.2입니다.


0

catalina에서 mongodb를 설치하고 실행하는 간단한 단계로 요점을 만듭니다.

# 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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.