Я пытаюсь создать новую папку в основном каталоге
Пробовал всевозможные примеры
sudo mkdir /data/db
sudo mkdir -p /data/db
Я продолжаю получать
mkdir: / data: файловая система только для чтения
Я пытаюсь создать новую папку в основном каталоге
Пробовал всевозможные примеры
sudo mkdir /data/db
sudo mkdir -p /data/db
Я продолжаю получать
mkdir: / data: файловая система только для чтения
Ответы:
Если у вас Mac и вы обновились до Catalina, корневая папка больше не доступна для записи.
Я просто сменил каталог в другом месте.
Я использовал эту команду сейчас
mongod --dbpath=/Users/user/data/db
из официальных документов 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 dbs
в оболочке mongo
С новым обновлением macOS Catalina папка /data/db
становится доступной только для чтения, вы не можете ее изменять. Выполните эту процедуру, чтобы создать БД в другой папке:
Сменить mongod
каталог:
sudo mongod --dbpath /System/Volumes/Data/data/db
Дайте ему псевдоним, чтобы использовать его как mongod
:
alias mongod="sudo mongod --dbpath /System/Volumes/Data/data/db"
Просто введите mongod
свой терминал, он должен работать.
Extra => Если вам нужно дать ему права текущего пользователя, используйте эту строку кода:
sudo chown -R $(whoami) /System/Volumes/Data/data/db
(Просто для информации -> $(whoami)
это просто переменная, которая возвращает вашего текущего пользователя)
Сделать постоянное изменение пути к db
папке mongod .
Следуя этим документам, они говорят примерно следующее. Если mongod запущен с сервисами пивоварения:
$ brew services start mongodb-community@4.2
Он будет использовать файл конфигурации по пути /usr/local/etc/mongod.conf
Чтобы исправить это, отредактируйте файл конфигурации:
$ vim /usr/local/etc/mongod.conf
И измените, dbPath
например, свой домашний каталог следующим образом:
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
Сохраните файл и перезапустите mongod с помощью brew:
$ brew services restart mongodb-community@4.2
Вот что сработало для меня, когда я проходил курс Udemy: 1. Установите HomeBrew, введя это в свой терминал.
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
Переместите старую папку / data / db (если вы хотите сделать резервную копию текущих dbs) в некорневую папку и перейдите к следующему шагу
Запустите в Терминале 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
Все, что вам теперь нужно, это запустить mongo в Терминале, и вы увидите символ оболочки mongo>.
Пожалуйста, дайте мне знать, работает ли это;) Мне потребовалось почти 2 часа, чтобы понять это, основываясь на этой статье: /apple/362883/mongodb-doesnt-work-after-update-to -macos-catalina-10-15
Ура, Раду
Если вы используете Mac и столкнулись с проблемой, то полезна команда ниже,
whoami
переменная получит текущего пользователя
mongod --dbpath=/Users/$(whoami)/data/db
Итак, с macOS Catalina Apple создала новый том в целях безопасности. Если вы используете macOS Catalina, вам нужно создать /data/db
папку в формате System/Volumes/Data
.
Следуйте этим командам
sudo mkdir -p /System/Volumes/Data/data/db
sudo chown -R
id -un /System/Volumes/Data/data/db
Запустить MongoDB
brew services run mongodb-community
Наслаждайтесь 😉
Пути по умолчанию для формулы mongodb-community
Помимо установки сервера MongoDB и двоичных файлов инструмента, формула mongodb-community создает:
тогда это сработало для меня:
mkdir -p usr/local/var/mongodb/data/db
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
С macOS Catalina вы больше не можете хранить файлы или данные в системном томе, доступном только для чтения, а также не можете писать в «корневой» каталог (/) из командной строки, например, с помощью Терминала.
Вы не можете создать /data/
каталог. Это зарезервировано для файловой системы APFS. Посетите блог Bombich по этой проблеме.
Mac-версия Catalina сделала корневую папку недоступной для записи.
У Brew есть обновленная версия mongodb для использования нового пути (который он создает сам), /usr/local/var/mongodb
и следование этим инструкциям устранит проблему:
Руководство по установке обновленной версии mongodb-community-edition
brew install mongodb-community@VERSION
где первая ВЕРСИЯ с исправлением - 4.2
Я создаю суть с простыми шагами по установке и запуску 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
Чтобы дополнить то, что здесь написал Дэвид Бак , сначала вам нужно создать каталог. Вы можете сделать это с помощью:
sudo mkdir / Система / Тома / Данные / данные / БД
Если вы получаете эту ошибку:
«Ошибка синтаксического анализа командной строки: неопознанный параметр '--dbpath / System / Volumes / Data / data / db', попробуйте 'mongod --help' для получения дополнительной информации»
после создания псевдонима это просто потому, что Дэвид Бак (делая действительно полезный комментарий) пропустил пробел в своем ответе.
Чтобы исправить это, введите
unalias mongod
а затем введите
псевдоним mongod = "sudo mongod --dbpath / System / Volumes / Data / data / db"
Я не понимаю, почему Apple сделала это ... Итак, теперь у нас не может быть никаких корневых каталогов, кроме их? Это просто не имеет смысла, и люди, создающие с правами root эти папки, знают, что делают.