MongoDB - разрешение на сокет:/tmp/mongodb-27017.sock

У меня было нечистое закрытие MongoDB на Ubuntu 10.04 LTS. Теперь, когда я вхожу в систему с правами root и запускаю Mongodb с помощью сервиса mongodb start, я становлюсь ниже error-

Mon Dec 12 13:53:15 [initandlisten] ERROR: listen(): bind() failed errno:13 Permission denied for socket: /tmp/mongodb-27017.sock

Когда я запускаю MongoDB вручную через root, он работает отлично.

Я могу подтвердить, что нет файла /tmp/mongodb -27017.sock

[email protected]:~# ll /tmp/
total 16
drwxr-xr-x  4 root root 4096 2011-12-12 13:53 ./
drwxr-xr-x 25 root root 4096 2011-12-11 13:06 ../
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .ICE-unix/
drwxrwxrwt  2 root root 4096 2011-12-12 13:01 .X11-unix/

С чего начать поиск неисправностей?

Ответ 1

Каковы права доступа к файлам на /tmp? Возможно ли, что они были изменены?

А

# ls -ld /tmp

расскажет вам.

Если вы не уверены, попробуйте:

# chown root:root /tmp
# chmod 1777 /tmp

Это может исправить.

Ответ 2

Попробуйте изменить владельца, как это,

sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

Ответ 3

Убедитесь, что пользователь Ubuntu mongo имеет доступ к файлу. Служба Mongo Ubuntu использует пользователя Ubuntu Mongo. Чтобы узнать имя пользователя mongo, перейдите в каталог /var/lib/mongodb и покажите разрешения: ls -l

Ответ 4

У меня такая же проблема, потому что я использую run mongodb от root, он начнет сбой с systemctl на CentOS 7.3.

Пожалуйста, используйте правильное разрешение для mongodb. $ sudo chown -R mongod:mongod \ /var/run/mongodb/mongod.pid \ /tmp/mongodb-27017.sock \ /var/lib/mongo/

Если у нас есть другие сбой, например Error reading file /path/file: Permission denied, возможно, мы сможем его исправить с помощью SELinux. $ sudo chcon -v -t mongod_var_lib_t /path/file

Кстати, я не рекомендую использовать разрешение 777, это так опасно.: P