복붙노트

[MONGODB] MongoDB를이 - 권한 소켓 거부 : /tmp/mongodb-27017.sock를

MONGODB

MongoDB를이 - 권한 소켓 거부 : /tmp/mongodb-27017.sock를

우분투 10.04 LTS에서 MongoDB를의 부정한 종료했다. 내가 루트로 로그인하고 서비스 MongoDB를 시작 통해 MongoDB를 실행할 때 지금, 나는 오류 - 아래 얻을

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

내가 루트를 통해 수동으로 MongoDB를 실행하면 잘 작동합니다.

나는 더 /tmp/mongodb-27017.sock 파일이없는 것을 확인할 수 있습니다

root@devbox:~# 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. ==============================

    1.무엇의 / tmp 디렉토리에있는 파일의 권한은? 그것은 그들이 변경 한 것을 할 수 있습니까?

    무엇의 / tmp 디렉토리에있는 파일의 권한은? 그것은 그들이 변경 한 것을 할 수 있습니까?

    에이

    # ls -ld /tmp
    

    당신을 말할 것이다.

    확실 시도하는 경우 :

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

    즉 문제를 해결할 수 있습니다.

  2. ==============================

    2.이 같은 소유자를 변경해보십시오,

    이 같은 소유자를 변경해보십시오,

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

    3.확인 우분투 몽고 사용자가 파일에 액세스 할 수 있습니다합니다. 몽고 우분투 서비스는 우분투 몽고 사용자를 사용합니다. 밖으로 몽고 이름을 찾으려면 것은 권한을 보여줄은 / var / lib 디렉토리 / MongoDB를 디렉토리로 가서 다음과 같습니다 LS -l

    확인 우분투 몽고 사용자가 파일에 액세스 할 수 있습니다합니다. 몽고 우분투 서비스는 우분투 몽고 사용자를 사용합니다. 밖으로 몽고 이름을 찾으려면 것은 권한을 보여줄은 / var / lib 디렉토리 / MongoDB를 디렉토리로 가서 다음과 같습니다 LS -l

  4. ==============================

    4.내가 루트로 사용하는 실행하여 MongoDB을 가지고 있기 때문에, 그것은에 CentOS 7.3에 systemctl 실패 시작, 같은 문제가 있습니다.

    내가 루트로 사용하는 실행하여 MongoDB을 가지고 있기 때문에, 그것은에 CentOS 7.3에 systemctl 실패 시작, 같은 문제가 있습니다.

    MongoDB에 대한 올바른 권한을 사용하십시오. $ sudo는 대한 Chown -R mongod : mongod \       /var/run/mongodb/mongod.pid \       /tmp/mongodb-27017.sock \       은 / var / lib 디렉토리 / 몽고 /

    우리가있는 경우 다른 오류 읽기 파일 / 경로 / 파일처럼 실패 : 권한이 거부, 어쩌면 우리가 SELinux를하여 문제를 해결할 수 있습니다. sudo는 chcon -v -t mongod_var_lib_t / 경로 / 파일을 $

    그건 그렇고, 내가하지 recomment 사용에게 777 권한 수행은 위험하므로입니다. :피

  5. ==============================

    5.버전에서 3.0 전에 소켓은 기본적으로 777 권한으로 작성되었습니다. mongod 소켓에 가장 올바른 방법의 권한을 설정 대부분은 mongodb.conf의 설정 값입니다. 예를 들면 :

    버전에서 3.0 전에 소켓은 기본적으로 777 권한으로 작성되었습니다. mongod 소켓에 가장 올바른 방법의 권한을 설정 대부분은 mongodb.conf의 설정 값입니다. 예를 들면 :

    sudo vim /usr/local/etc/mongodb.conf
    

    라인 삽입 :

    filePermissions = 0777 
    

    그것.

    경우 직접하려고 대한 Chown와 /tmp/mongodb-27017.sock 할 수있는 권한을 변경하고 기회가 임시 설정할 수 chmod를됩니다. 그리고 mongod 서비스를 다시 시작 또는 서버 재부팅 후 이전 권한이 있습니다.

  6. ==============================

    6.우리는 맥을 사용하여 MongoDB를 설치 일반적으로 mongodb.conf 필요하지 않습니다, 그래서,이 시도 :

    우리는 맥을 사용하여 MongoDB를 설치 일반적으로 mongodb.conf 필요하지 않습니다, 그래서,이 시도 :

    sudo chown -R your-username /tmp/
    

    추신 : 당신의-이름은 맥 OS에서 사용자 이름입니다, 아니 당신이 당신의 이름이 무엇인지 모르는 root.if 명령이있다 :

    whoami
    
  7. from https://stackoverflow.com/questions/8479384/mongodb-permission-denied-for-socket-tmp-mongodb-27017-sock by cc-by-sa and MIT license