MongoDB не может найти каталог данных после обновления до Mac OS 10.15 (Catalina) - PullRequest
42 голосов
/ 08 октября 2019

Сегодня я обновился до MacOS 10.15 (Каталина). Когда я запускаю 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

Любая помощь?

Ответы [ 6 ]

51 голосов
/ 09 октября 2019

Это основная ошибка:

исключение в initAndListen: NonExistentPath: каталог данных / data / db не найден., Завершение

У Каталины неожиданное изменение:он не допустит изменений в корневом каталоге (это обсуждалось также в ветке форума ):

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

К сожалению, это явно не прописано в Apple Замечания к выпуску Catalina , за исключением краткого упоминания в Особенности Catalina :

macOS Catalina работает в выделенном системном томе только для чтения

Поскольку каталог /data/db закодирован как MongoDB по умолчанию, обходной путь должен указать другой dbpath, который не находится в корневом каталоге. Например:

mongod --dbpath ~/data/db

Это поместит данные MongoDB в ваш домашний каталог. Просто убедитесь, что путь ~/data/db действительно существует.

Альтернативный метод

Альтернативный метод - следовать инструкциям на Установка MongoDB Community Edition на macOS, используя 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 как отдельный узел (не набор реплик), поэтому функции, которые зависят от оплога, например, changetreams, не будут работать, если вы не измените файл конфигурации mongod:

    brew services start mongodb-community
    
39 голосов
/ 10 октября 2019

После установки Catalina на рабочем столе может появиться папка с именем Relocated Items. Вы можете найти папку data/db внутри папки Security.

Все, что мне нужно было сделать, это переместить Security/data/db, в частности data/db, и поместить его в мою домашнюю папку.

Вы можете сделать это с помощью приложения Finder или с помощью терминала, выполнив следующую команду:

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

После этого выполните: mongod --dbpath ~/data/db

Вы должны создать псевдоним ранее.

0 голосов
/ 09 ноября 2019

Вот что сработало для меня:

  1. Создайте папку где-нибудь, например, Development / mongodb / data / db
  2. Откройте mongod.conf файл и обновите *Значение 1008 * storage.dbPath для вновь создаваемого пути к папке
0 голосов
/ 05 ноября 2019

нашел хитрость ... удалите всю папку ~ / data / db из каталога, затем заново создайте новую, но НЕ ИСПОЛЬЗУЙТЕ вместо этого mkdir -p / data / db, просто используйте трекпад, чтобы сделать это useсистемный способ создания папки

у меня это сработало

0 голосов
/ 04 ноября 2019

этот скрипт может быть полезен https://gist.github.com/sturmenta/cf19baa91b1d79d8ae2b305fb7e1f799

??????

0 голосов
/ 13 октября 2019

Если вы получаете сообщение об ошибке, пытаясь переместить всю папку данных. !!

Просто переместите папку db, которая является важной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...