Ответ 1
Каковы права доступа к файлам на /tmp? Возможно ли, что они были изменены?
А
# ls -ld /tmp
расскажет вам.
Если вы не уверены, попробуйте:
# chown root:root /tmp
# chmod 1777 /tmp
Это может исправить.
У меня было нечистое закрытие 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/
С чего начать поиск неисправностей?
Каковы права доступа к файлам на /tmp? Возможно ли, что они были изменены?
А
# ls -ld /tmp
расскажет вам.
Если вы не уверены, попробуйте:
# chown root:root /tmp
# chmod 1777 /tmp
Это может исправить.
Попробуйте изменить владельца, как это,
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
Убедитесь, что пользователь Ubuntu mongo имеет доступ к файлу. Служба Mongo Ubuntu использует пользователя Ubuntu Mongo. Чтобы узнать имя пользователя mongo, перейдите в каталог /var/lib/mongodb и покажите разрешения: ls -l
У меня такая же проблема, потому что я использую 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