Установка разрешений на чтение/запись в папке Mongodb

Я только что закончил установку MongoDB на OSX и настроил структуру каталогов с помощью sudo mkdir -p /data/db.

Когда я пытаюсь запустить mongod из своей учетной записи пользователя, он возвращает ошибку о том, что моя учетная запись пользователя не имеет разрешения на чтение/запись для /data/db.

Как я могу установить правильные права на чтение/запись в моей учетной записи для /data/db?


person Zoltan King    schedule 11.03.2015    source источник


Ответы (8)


Убедитесь, что учетная запись пользователя, работающая под управлением mongod, имеет соответствующие права доступа к каталогу. Вы можете проверить, какие разрешения установлены следующим образом:

ls -ld /data/db/

Если они настроены правильно, они должны выглядеть примерно так.

drwxr-xr-x X user wheel XXX Date Time /data/db/

Если разрешения установлены неправильно, вы, вероятно, увидите подобную ошибку при попытке запустить mongod

exception in initAndListen: XXXXX Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating

Чтобы получить права, установленные так, как они должны быть, вы можете запустить следующую команду

sudo chmod 0755 /data/db && sudo chown $USER /data/db
person davidcondrey    schedule 12.03.2015
comment
$ sudo chmod 0755 /data/db && sudo chown $USER /data/db - person EvgenyKolyakov; 18.07.2016
comment
ДА! НЕ забывайте sudo на chown! - person coblr; 08.12.2016

sudo chmod 777 /data/db/ 

Должно работать на Mac. Перед запуском этого cmd разрешения выглядят так

drwxr-xr-x  X User  wheel  Date /data/db

после запуска cmd

drwxrwxrwx  X User  wheel  Date /data/db
person getSantsoh    schedule 28.01.2017
comment
Что означает wheel? Где у вас есть User и Date синим цветом, их нужно чем-то заменить? - person Agent Zebra; 10.11.2018

Это то, что сработало для меня. Я использую Mac, хотя вы можете попробовать, если используете Windows.

sudo chmod 777 /data/db
person Tim Anishere    schedule 21.06.2016
comment
sudo chmod 0755 /data/db && chown $USER /data/db - person Manoj Kumar; 09.08.2016
comment
мы не должны использовать это ради безопасности?! - person Van Tran; 21.09.2018
comment
Где у вас есть `$USER`, это имя пользователя для базы данных или учетная запись пользователя компьютера? Или вы буквально набираете `$USER`? :D Спасибо. - person Agent Zebra; 10.11.2018

Есть три категории пользователей: владельцы, участники группы и все остальные; chmod 777 /path/to/file позволяет всем читать/записывать файл, но chmod 775 /path/to/file позволяет только владельцу/группе читать/записывать файл. Обязательно используйте chmod 775 /path/to/file, если вы разрабатываете веб-сервер.

Некоторое полезное чтение, особенно для обоснования того, почему 777, 775 и т. д. используются, а не другие числа: https://www.maketecheasier.com/file-permissions-what-does-chmod-777-означает/

person aaron    schedule 16.08.2017

Ни одно из этих предложений не является правильным, что-то еще не так с mongodb-org-3.4.16-1.el7.x86_64. Он не может начинаться с пользовательского пути к базе данных.

[root@localhost vagrant]# chmod 777 /data/ /data/mongodb
[root@localhost vagrant]# chown mongod:mongod /data/ /data/mongodb
[root@localhost vagrant]# ls -lad /data/mongodb/
drwxrwxrwx. 2 mongod mongod 6 Jul 11 15:24 /data/mongodb/
[root@localhost vagrant]#  systemctl start mongod
Job for mongod.service failed because the control process exited with error code. See "systemctl status mongod.service" and "journalctl -xe" for details.
[root@localhost vagrant]# stat /data/mongodb^C
[root@localhost vagrant]# !tail
tail /var/log/mongodb/mongod.log
2018-07-11T15:39:10.786+0000 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/mongodb, terminating
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2018-07-11T15:39:10.786+0000 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] now exiting
2018-07-11T15:39:10.786+0000 I CONTROL  [initandlisten] shutting down with code:100
[root@localhost vagrant]# rpm -qa | grep mongo
mongodb-org-tools-3.4.16-1.el7.x86_64
mongodb-org-shell-3.4.16-1.el7.x86_64
mongodb-org-server-3.4.16-1.el7.x86_64
mongodb-org-mongos-3.4.16-1.el7.x86_64
mongodb-org-3.4.16-1.el7.x86_64
person b__    schedule 11.07.2018

Просто беги

sudo chown group:user /data/db

где group это группа вашего пользователя

person Artem    schedule 11.03.2015
comment
Что означает does where group is a group of your user? Просьба уточнить. - person Agent Zebra; 10.11.2018

Ни один из данных ответов не работал у меня. В итоге я настроил своего личного пользователя ОС как пользователя root, затем вручную перешел в папку db — щелкнул правой кнопкой мыши, чтобы просмотреть информацию, — и добавил себя с разрешениями на чтение и запись.

person suzmas    schedule 13.01.2017

Согласно курсу M103 Университета Mongodb, уровень разрешений будет

sudo chmod 600 /path/to/db
person Sohail    schedule 24.09.2020