Mongodb не работает на последней Mac OS (10.15) - программирование

Mongodb не работает на последней Mac OS (10.15)

Я обновился до Mac 10.15 сегодня. Когда я запускаю mongod терминал:

➜  /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 > 

Пытался установить его снова

brew install mongodb

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

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

4b9b3361

Ответ 1

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

exception in initAndListen: NonExistentPath: Data directory/data/db not found., terminating

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

% 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 в качестве автономного узла (не набора реплик), поэтому функции, которые зависят от оплога, например, Изменения не будут работать, если вы не измените файл конфигурации mongod:

    brew services start mongodb-community
    

Ответ 2

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

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

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

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

После этого запустите: mongod --dbpath ~/data/db

Это до вас, чтобы создать псевдоним ранее

Ответ 3

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

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

Ответ 4

После перезагрузки системы мне нужно снова запустить эту команду: mongod --dbpath ~/data/db Как сохранить эту команду, чтобы после перезагрузки системы не было необходимости заново регистрировать этот путь?