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
Любая помощь?
Ответы
Ответ 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
Как сохранить эту команду, чтобы после перезагрузки системы не было необходимости заново регистрировать этот путь?