[mongodb] Mac OS 10.15 (Catalina)로 업그레이드 한 후 MongoDB가 데이터 디렉토리를 찾을 수 없음

오늘 MacOS 10.15 (Catalina)로 업데이트했습니다. mongod터미널에서 실행할 때 /data/db디렉토리를 찾을 수 없습니다 .

  /Users/william > mongod
2019-10-08T17:02:44.183+0800 I CONTROL  [main] Automatically disabling TLS 1.0, to force-enable TLS 1.0 specify --sslDisabledProtocols 'none'
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] MongoDB starting : pid=43162 port=27017 dbpath=/data/db 64-bit host=Williams-MacBook-Pro-6.local
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] db version v4.0.3
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] git version: 7ea530946fa7880364d88c8d8b6026bbc9ffa48c
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] allocator: system
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] modules: none
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] build environment:
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten]     distarch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten]     target_arch: x86_64
2019-10-08T17:02:44.209+0800 I CONTROL  [initandlisten] options: {}
2019-10-08T17:02:44.211+0800 I STORAGE  [initandlisten] exception in initAndListen: NonExistentPath: Data directory /data/db not found., terminating
2019-10-08T17:02:44.211+0800 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2019-10-08T17:02:44.211+0800 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
2019-10-08T17:02:44.211+0800 I CONTROL  [initandlisten] now exiting
2019-10-08T17:02:44.211+0800 I CONTROL  [initandlisten] shutting down with code:100
  /Users/william > 

MongoDB를 brew다음 과 같이 설치하려고했습니다 .

brew install mongodb

  /Users/william > brew install mongodb
Updating Homebrew...
Error: mongodb: unknown version :mountain_lion

어떤 도움?



답변

이것은 주요 오류입니다.

initAndListen 예외 : NonExistentPath : 데이터 디렉토리 / data / db를 찾을 수 없습니다.

Catalina는 놀라운 변화를 가져 왔습니다 : 루트 디렉토리에 대한 변경을 허용하지 않습니다 (이것은 포럼 스레드 에서도 논의되었습니다 ) :

% sudo mkdir -p /data/db
mkdir: /data/db: Read-only file system

불행히도, 이것은 Catalina 기능 에 대한 간단한 언급 외에 Apple의 Catalina 릴리스 노트에 명시 적으로 나와 있지 않습니다 .

macOS Catalina는 전용의 읽기 전용 시스템 볼륨에서 실행됩니다

디렉토리 /data/db는 MongoDB 기본값으로 코딩되어 있으므로 해결 방법은 dbpath루트 디렉토리에없는 다른 디렉토리 를 지정하는 것 입니다. 예를 들면 다음과 같습니다.

mongod --dbpath ~/data/db

그러면 MongoDB의 데이터가 홈 디렉토리에 배치됩니다. 경로가 ~/data/db실제로 존재 하는지 확인하십시오 .

대체 방법

다른 방법은 다음 을 활용하여 macOSMongoDB Community Edition 설치 의 지시 사항을 따르는 것입니다 brew.

brew tap mongodb/brew
brew install mongodb-community

기본적으로 몇 가지 추가 파일이 생성됩니다.

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

실행하려면 다음 mongod중 하나 를 수행 하십시오.

  • 명령 행에서 수동으로 명령을 실행하십시오 (편의를 위해 별명을 지정할 수 있음).

    mongod --config /usr/local/etc/mongod.conf
  • 를 사용하여 MongoDB를 서비스로 실행하십시오 brew services. 이렇게하면 MongoDB가 독립형 노드 (복제 세트가 아님)로 실행되므로 oplog에 의존하는 기능 (예 : changestream)은 mongod구성 파일 을 수정하지 않으면 작동하지 않습니다 .

    brew services start mongodb-community

답변

Catalina를 설치 한 후 바탕 화면에이라는 폴더가있을 수 있습니다 Relocated Items. data/db폴더 안에서 폴더 를 찾을 수 있습니다 Security.

내가해야 할 일은 Security/data/db구체적 으로 이동하고 data/db내 홈 폴더 안에 넣는 것입니다.

다음 명령을 실행하여 Finder 앱 또는 터미널에서이를 수행 할 수 있습니다.

sudo mv /Users/Shared/Relocated\ Items/Security/data ~/

그 후 :
mongod --dbpath ~/data/db

별칭을 더 일찍 만드는 것은 당신에게 달려 있습니다.


답변

Kevinadi는 이미 문제에 대해 정의를 수행했지만 이것이 문제를 해결하는 방법입니다.

mongodb-community를 설치 한 후

  1. sudo mkdir -p /System/Volumes/Data/data/db (data / db 폴더 생성)
  2. sudo chown -Rid -un /System/Volumes/Data/data/db(권한 부여)
  3. mongod --dbpath=/System/Volumes/Data/data/db (mongodb의 dbpath 변경)
  4. mongod (잘 작동합니다)

mongodb 설치에 대한 이 기사 가 매우 유용하다는 것을 알았습니다


답변

트릭을 찾았습니다 … 디렉토리에서 ~ / data / db 전체 폴더를 삭제 한 다음 새 폴더를 다시 만들지 만 mkdir -p / data / db를 사용하지 마십시오. 트랙 패드를
사용하여 폴더를 만드는 시스템 방법을 사용하십시오

이것은 나를 위해 일했다


답변

나를 위해 일한 것은 다음과 같습니다.

  1. 개발 / mongodb / data / db 어딘가에 폴더 생성
  2. mongod.conf 파일을 열고 storage.dbPath 값을 새로 작성된 폴더 경로로 업데이트하십시오 .

답변

이 스크립트는 도움이 될 수 있습니다 https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799

??????


답변

Mac 버전 Catalina는 루트 폴더를 더 이상 쓸 수 없도록 만들었습니다.

Brew는 새로운 경로를 사용하기 위해 mongodb의 업데이트 버전을 가지고 있으며, /usr/local/var/mongodb이 지침에 따라 문제를 해결할 수 있습니다.

업데이트 된 mongodb-community-edition 설치 안내서

brew install mongodb-community@VERSION 여기서 수정 사항이있는 첫 번째 버전은 4.2입니다.