복붙노트

[MONGODB] MongoDB의 : initAndListen에서 예외 : 20 읽기 전용 디렉토리에 대한 잠금 파일을 만들 시도 : / 데이터 / dB, 종료

MONGODB

MongoDB의 : initAndListen에서 예외 : 20 읽기 전용 디렉토리에 대한 잠금 파일을 만들 시도 : / 데이터 / dB, 종료

나는 / 데이터 / 루트 디렉토리와 만났 ./mongod에서 DB를 생성 :

[initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
[initandlisten] shutdown: going to close listening sockets...
[initandlisten] shutdown: going to flush diaglog...
[initandlisten] now exiting
[initandlisten] shutting down with code:100

해결법

  1. ==============================

    1.문제는 디렉토리를 만든 것을, / 데이터 / DB가 소유하고 루트 사용자 만 쓸 수있다,하지만 당신은 자신으로 mongod를 실행하고 있습니다. 이이 문제를 해결하는 방법은 여러 가지가 있지만, 궁극적으로, 당신은 문제의 디렉토리에게 적절한 권한을 부여해야합니다. 이 생산을위한 경우에, 나는 당신이 문서를 확인하고주의 깊게을 통해 생각을 권합니다 - 당신은 아마 특별한주의를 먹고 싶어.

    문제는 디렉토리를 만든 것을, / 데이터 / DB가 소유하고 루트 사용자 만 쓸 수있다,하지만 당신은 자신으로 mongod를 실행하고 있습니다. 이이 문제를 해결하는 방법은 여러 가지가 있지만, 궁극적으로, 당신은 문제의 디렉토리에게 적절한 권한을 부여해야합니다. 이 생산을위한 경우에, 나는 당신이 문서를 확인하고주의 깊게을 통해 생각을 권합니다 - 당신은 아마 특별한주의를 먹고 싶어.

    이것은 단지 테스트하고 방금 작업이 필요하고 그것에서 얻을 경우, 당신은 모든 사람이 디렉토리를 쓰기 가능하게되는이를 시도 할 수 있습니다 :

    > sudo chmod -R go+w /data/db
    

    또는 소유 디렉토리를 만들 것이다 이것은 :

    > sudo chown -R $USER /data/db
    
  2. ==============================

    2.맥에, 나는 다음을 수행했다 :

    맥에, 나는 다음을 수행했다 :

    sudo chown -R $USER /data/db
    sudo chown -R $USER /tmp/
    

    몽고는 액세스가 필요 파일 내부에 / tmp를도 있었기 때문에

  3. ==============================

    3.당신은 나를 위해 작동, 루트로 몽고을 사용할 수 있습니다 :

    당신은 나를 위해 작동, 루트로 몽고을 사용할 수 있습니다 :

    $ sudo mongod
    
  4. ==============================

    4.시스템에서 SELinux를 사용하는 경우, 사용자가 만든 디렉토리에 대한 올바른 컨텍스트를 사용해야합니다 :

    시스템에서 SELinux를 사용하는 경우, 사용자가 만든 디렉토리에 대한 올바른 컨텍스트를 사용해야합니다 :

    ls -dZ /data/db/
    ls -dZ /var/lib/mongo/
    

    컨텍스트를 함께 복제 :

    chcon -R --reference=/var/lib/mongo /data/db
    
  5. ==============================

    5.저도 같은 문제가 발생하고 다음과 같은 솔루션이 문제를 해결했다. 다음과 같은 솔루션을 시도해야합니다.

    저도 같은 문제가 발생하고 다음과 같은 솔루션이 문제를 해결했다. 다음과 같은 솔루션을 시도해야합니다.

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

    6.당신이 당신의 MongoDB의 로그를 확인하고 당신이 이러한 오류가 발생하는 경우 내가했던 것처럼 그런 다음 단계를 수행합니다. 그것은 당신의 / 데이터 / db 디렉토리에 권한 문제로 인해 발생합니다. 나는 ubuntu16.04를 사용하고 난 다음과 같은 두 가지 간단한 명령을 실행하는 솔루션을 찾을 수 있습니다.

    당신이 당신의 MongoDB의 로그를 확인하고 당신이 이러한 오류가 발생하는 경우 내가했던 것처럼 그런 다음 단계를 수행합니다. 그것은 당신의 / 데이터 / db 디렉토리에 권한 문제로 인해 발생합니다. 나는 ubuntu16.04를 사용하고 난 다음과 같은 두 가지 간단한 명령을 실행하는 솔루션을 찾을 수 있습니다.

    1 단계 : 사용 권한 부여 / 데이터 / DB 디렉토리 :

    sudo chmod -R 0777 /data/db
    

    2 단계 : mongod 서비스로 시작해보십시오 :

    sudo service mongod start
    

    3 단계 : mongod 서비스의 상태를 확인한다 :

    sudo service mongod status
    
  7. ==============================

    7.나는 정확히 같은 문제에 직면하고 나는 그것을 해결하고 여기에 단계별로 설명 단계입니다 :

    나는 정확히 같은 문제에 직면하고 나는 그것을 해결하고 여기에 단계별로 설명 단계입니다 :

    다른 모든 시도하기 전에, 단지 MongoDB를위한 bin 디렉토리를 포함하는 MongoDB의 디렉토리로 변경하고, 단순히 터미널에서 명령을 사용합니다 :

    sudo는 빈 / mongod

    루트 사용자로 MongoDB를 실행하면 루트 사용자로 암호를 입력하라는 메시지가 표시 될 수 있습니다. 여전히 MongoDB를 실행 할 수없는 경우, 다음의 다음을 수행 할 수 있습니다

    첫째,의 터미널에 입력하여 MongoDB를의 데이터 디렉토리의 허가 모드를 보자 :

    LS -ld / 데이터

    (추신 또는 우리는 단지 입력 할 수 있습니다 "LS -l /"를 / 데이터 디렉토리를 포함하는 루트 디렉토리에있는 모든 디렉토리와 파일의 허가 모드를 참조하십시오.)

    그리고 루트 사용자의 권한 모드는 "RWX"파일을 쓰기 읽기 및 실행 할 수있는, 즉 루트 사용자 여야합니다. 이 일어날 수 있도록하기 위해, 우리는 터미널에 입력하여 사용 권한 모드를 변경하는 명령을 사용합니다 :

    chmod를 755 / 데이터

    (즉, (755)는 8 진수 특정 권한 설정 인수이다) "를 rwxr-XR-X"이 세트 / 데이터 디렉토리의 허가 모드, 즉, 수있는 루트 사용자는 읽기, 쓰기 및 그룹 사용자와 다른 사람들은 읽기 및 실행 할 수있는 반면 실행합니다.

    참고 :이 작업을 수행하기 위해 거부하는 경우, 대신에 입력 :

    sudo는 755 / 데이터 chmod를

    루트 사용자로 권한을 설정합니다.

    이 단계가 완료되면 다음,의 입력하여 권한 모드를 탈환하자 다시: LS -ld / 데이터

    출력은 다음과 같이한다 :

    drwxr-XR-X (3) 루트 휠 102 삼월 3 17시 / 데이터

    (p.s.you은 처음에 "D"에 대해 걱정할 필요가 없습니다) 지금은 이루어집니다 "를 rwxr-XR-X"설정을 확인할 수 있습니다.

    그리고 우리는 모든 설정하고 이제 MongoDB를 디렉토리 형식으로 다시 변경할 수 있습니다 :

    sudo는 빈 / mongod

    MongoDB를 실행합니다.

    도움이 되었기를 바랍니다.

  8. ==============================

    8.니스 솔루션, 그러나 아무도는 창을위한 솔루션을 제공하지 않습니다 왜 궁금해.

    니스 솔루션, 그러나 아무도는 창을위한 솔루션을 제공하지 않습니다 왜 궁금해.

    Windows를 사용하는 경우, 당신은 "관리자 권한으로 실행"cmd를해야합니다.

  9. ==============================

    9./ 데이터 / dB (또는은 / var / lib 디렉토리 / MongoDB를)의 사용 권한을 수정 :

    / 데이터 / dB (또는은 / var / lib 디렉토리 / MongoDB를)의 사용 권한을 수정 :

    sudo chown -R mongodb: /data/db
    

    다음 다시 MongoDB를 들어 사용

    sudo systemctl restart mongod
    

    당신은 데이터 디렉토리 다른로는 / var / lib 디렉토리 / MongoDB를 사용하는 경우하지의 도움을 않는 경우, 귀하의 오류 메시지를 확인하십시오. 이 경우 실행에

    sudo chown -R mongodb: <insert your data directory here>
    

    출처

  10. ==============================

    10.루트의 데이터베이스 디렉토리를 가질 필요가없는 경우, 당신은 당신의 홈 디렉토리에 (에서 mkdir -p ~ / 데이터 / DB를) 데이터 / DB를 생성 할 수 있습니다.

    루트의 데이터베이스 디렉토리를 가질 필요가없는 경우, 당신은 당신의 홈 디렉토리에 (에서 mkdir -p ~ / 데이터 / DB를) 데이터 / DB를 생성 할 수 있습니다.

    그런 다음 --dbpath 옵션을 사용하여 MongoDB의 서버를 시작할 수 있습니다 :

    mongod --dbpath=$(echo ~)/data/db
    

    (이것은 터미널에서 시작하고 가정된다. 어떤 이상한 이유로, mongod은받지 않습니다 ~ 홈 디렉토리 경로, 따라서 배쉬로 에코 대체 속임수, 당신이 할 수있다뿐만 아니라 쓰기 / 홈 / username이 / 데이터 / DB)

    사실, 그것은 어디서든 당신이 원하는 일 수있다, ~ / 데이터 / DB 될 필요가 없습니다,이 방법은 여러 데이터베이스 경로가 멋지게 모든 것을 구성 할 수 있습니다. 하지만 작품의 벌금을 개발하기위한 (당신이 원하는 내용에 따라) 생산을위한 최선의 선택되지 않을 수 있습니다.

  11. ==============================

    11.당신은 슈퍼 사용자로 명령을 실행해야합니다 :

    당신은 슈퍼 사용자로 명령을 실행해야합니다 :

    sudo는 스와 mongod : 그냥 터미널에서 입력

  12. ==============================

    12.Windows에서, 그리고 당신이 설정 MongoDB를하려고하는 경우, Admnistrator으로 실행 cmd를 엔리케는 여기를 참조 위의 제안 방법 정방향

    Windows에서, 그리고 당신이 설정 MongoDB를하려고하는 경우, Admnistrator으로 실행 cmd를 엔리케는 여기를 참조 위의 제안 방법 정방향

  13. ==============================

    13.우선 모든 정류장 MongoDB를 서비스, 다음에 디렉토리를 만들려면이 있고, 또한 포트 파일을 제거하지 않는 경우 /, 그것은 루트를 의미한다. 명령 아래 실행 디렉토리 소유자, 해당 디렉토리에 모든 권한을 부여된다 :

    우선 모든 정류장 MongoDB를 서비스, 다음에 디렉토리를 만들려면이 있고, 또한 포트 파일을 제거하지 않는 경우 /, 그것은 루트를 의미한다. 명령 아래 실행 디렉토리 소유자, 해당 디렉토리에 모든 권한을 부여된다 :

    sudo service mongod stop
    sudo rm -rf /tmp/mongod*
    sudo mkdir -p /data/db
    sudo chmod -R a+wxr /data
    sudo chown -R $USER:$USER /data
    

    이제 완료, 단지 도움을하지 않은 경우 같은 포트를 변경하려고하면 MongoDB의 서비스를 시작합니다 :

    sudo service mongod restart && mongod # if didn't help run below cmd
    mongod --port 27018
    

    참고 : 내 모든 물건의 작품이 들어와 사람, 당신을 위해 일 것입니다 희망!

  14. from https://stackoverflow.com/questions/42446931/mongodb-exception-in-initandlisten-20-attempted-to-create-a-lock-file-on-a-rea by cc-by-sa and MIT license