복붙노트

[MONGODB] Mongod은 / 데이터 / DB 폴더가 더 있다는 것을 불평하지

MONGODB

Mongod은 / 데이터 / DB 폴더가 더 있다는 것을 불평하지

오늘 처음으로 나의 새로운 맥을 사용하고 있습니다. 나는 하나가 / 데이터 / DB 디렉토리를 생성하는 단계까지 mongodb.org까지에 가져 오기 시작 가이드를 따라하고 있습니다. BTW, 나는 사제 경로를 사용했다.

내가 터미널을 열고, 나는 당신이 내가 "LS"할 때의 홈 디렉토리라고 무엇라고 생각 그래서, 나는 데스크톱 응용 프로그램 영화 음악 사진 문서 및 라이브러리 폴더를 참조하십시오.

내가 한 있도록

mkdir -p /data/db

첫째, 권한이 거부했다. 나는 마지막으로 반 시간에 다른 일을 시도 유지 :

mkdir -p data/db

했다. 때 I "LS", 데이터의 디렉토리와 그 안에 존재 할 폴더 DB를 중첩.

그때 mongod를 불 그리고 데이터를 찾을 수 없습니다 / DB를 뿌려

내가 뭔가 잘못 했나요?

지금은 수행 한

sudo mkdir -p /data/db

나는 "LS"를 할 때 나는 데이터 디렉토리와 DB의 디렉토리를 참조 할. 비록 DB를 디렉토리 안에 절대적으로 아무것도 내가 지금 실행 mongod 없다

Sun Oct 30 19:35:19 [initandlisten] exception in initAndListen: 10309 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
Sun Oct 30 19:35:19 dbexit: 
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close listening sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to flush diaglog...
Sun Oct 30 19:35:19 [initandlisten] shutdown: going to close sockets...
Sun Oct 30 19:35:19 [initandlisten] shutdown: waiting for fs preallocator...
Sun Oct 30 19:35:19 [initandlisten] shutdown: lock for final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: final commit...
Sun Oct 30 19:35:19 [initandlisten] shutdown: closing all files...
Sun Oct 30 19:35:19 [initandlisten] closeAllFiles() finished
Sun Oct 30 19:35:19 [initandlisten] shutdown: removing fs lock...
Sun Oct 30 19:35:19 [initandlisten] couldn't remove fs lock errno:9 Bad file descriptor
Sun Oct 30 19:35:19 dbexit: really exiting now

편집하다 에 대한 오류 메시지가 표시

sudo chown mongod:mongod /data/db

chown: mongod: Invalid argument

감사합니다, 여러분!

해결법

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

    1.당신은 잘못된 위치에 디렉토리를 생성

    당신은 잘못된 위치에 디렉토리를 생성

    당신은 아마 다른 디렉토리 안에 같은 '/ 루트'의 homedirectory (은 / 선도없이)의 데이터 / DB '를 만든 반면이는'/ '루트 디렉토리 바로 아래에 있다고 / 데이터 / DB 수단.

    당신은 루트로이 디렉토리를 작성해야

    어느 쪽이든 당신은 sudo를 사용, 예를 들어, 필요 sudo는 MKDIR -p / 데이터 / DB

    수퍼 유저로 다음에서 mkdir -p / 데이터 / DB와 디렉토리를 생성 - 또는 당신은 SU 할 필요가

    노트 :

    MongoDB는 또한 다른 위치에 데이터 디렉토리를 생성 할 수있는 옵션을 가지고 있지만, 그것은 단지 약간 같은 DB 복구와 같은 일을 복잡하기 때문에 당신은 항상 수동으로 DB-경로를 지정해야하기 때문에 즉, 일반적으로 좋은 생각이 아니다. 나는 그 일을 권하고 싶지 않다.

    편집하다:

    당신이지고있는 오류 메시지가 "/data/db/mongod.lock의 errno를 : 13 사용 권한이 거부 개방 / 잠금 파일을 만들 수 없습니다"입니다. 사용자가 만든 디렉토리가 올바른 권한과 소유권을하지 않는 것 -  그것은 MongoDB의 프로세스를 실행하는 사용자의 쓰기 권한을 설정해야합니다.

    권한과 '/ 데이터 / DB /'디렉토리의 소유권을 확인하려면 다음을 수행하십시오 (이 권한과 소유권과 같아야 것입니다)

    $ ls -ld /data/db/
    drwxr-xr-x 4 mongod mongod 4096 Oct 26 10:31 /data/db/
    

    왼쪽 'drwxr-XR-X'쇼 사용자, 그룹, 및 다른 사람을위한 권한. 'mongod의 mongod'디렉토리를 소유 쇼, 어느 그룹이 디렉토리에 속한. 모두이 경우에 'mongod'이라고합니다.

    당신의 "/ 데이터 / DB '디렉토리 위의 권한과 소유권이없는 경우,이 작업을 수행 :

    당신의 몽고 사용자가 무슨 사용자 및 그룹 첫 번째 검사 :

    # grep mongo /etc/passwd
    mongod:x:498:496:mongod:/var/lib/mongo:/bin/false
    

    이 데몬입니다 같이, / etc / passwd에에서 MongoDB에 대한 항목이 있어야합니다.

    sudo chmod 0755 /data/db
    sudo chown -R 498:496 /data/db    # using the user-id , group-id
    

    또한 다음과 같이, 사용자 이름 및 그룹 이름을 사용할 수 있습니다 : (그들은에서 / etc / passwd 및 / etc / group 찾을 수 있습니다)

    sudo chown -R mongod:mongod /data/db 
    

    그게 작동해야한다 ..

    아래의 설명에서, 어떤 사람들은 이것을 사용 :

    sudo chown -R `id -u` /data/db
    sudo chmod -R go+w /data/db
    

    또는

    sudo chown -R $USER /data/db 
    sudo chmod -R go+w /data/db
    

    단점은 $ 사용자가 로그인 쉘이있는 계정 것입니다. 데몬은 이상적으로 위의 암호 파일의 그렙에 / 빈 / 거짓을 볼 이유 보안상의 이유로 쉘을 가지고는 안된다.

    더 나은 디렉토리 권한의 의미를 이해하려면 여기를 확인하십시오

    http://www.perlfect.com/articles/chmod.shtml

    어쩌면 또한 구글을 통해 찾을 수있는 튜토리얼 중 하나를 체크 아웃 : "UNIX를 초보자를위한"

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

    2.닉과 같은 오류가 발생 후

    닉과 같은 오류가 발생 후

    나는 이것이 분명히 (역 인용 부호 있었어야) 우분투 포럼 인용 부호의 잘못된 유형을 사용에서 발생 발견

    대신 난 그냥 사용

    지금 mongod 대안과 그것을 필요로하는 권한을 갖습니다.

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

    3.댓글에서 발견 나를 위해이 작품 :

    댓글에서 발견 나를 위해이 작품 :

    sudo chown -R $USER /data/db
    
  4. ==============================

    4.폴더를 생성합니다.

    폴더를 생성합니다.

    sudo mkdir -p /data/db/
    

    자신에게 폴더에 권한을 부여합니다.

    sudo chown `id -u` /data/db
    

    그럼 당신은 sudo를하지 않고 mongod를 실행할 수 있습니다. OSX 요세미티에서 작동

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

    5.OS X에 해당 오류를 해결하려면, 나는 다시 시작하고 서비스를 중지 : $ BREW 서비스는 MongoDB를 다시 시작 $ BREW 서비스 정지 MongoDB를

    OS X에 해당 오류를 해결하려면, 나는 다시 시작하고 서비스를 중지 : $ BREW 서비스는 MongoDB를 다시 시작 $ BREW 서비스 정지 MongoDB를

    그럼 난 mongod --config /usr/local/etc/mongod.conf 달리고, 문제는 사라졌다.

    이 오류는 MongoDB를의 사제 패키지를 업그레이드 한 후 발생하는 것 같았다.

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

    6.YOUR_USER_NAME과 직원 그룹입니다 Mac에서 양조를 통해 설치

    YOUR_USER_NAME과 직원 그룹입니다 Mac에서 양조를 통해 설치

    sudo mkdir -p /data/db
    sudo chmod +x+r+w /data/db/
    sudo touch /data/db/mongod.lock
    sudo chown YOUR_USER_NAME:staff /data/db
    sudo chmod +x+r+w /data/db/mongod.lock
    sudo chown YOUR_USER_NAME:staff /data/db/mongod.lock
    
  7. ==============================

    7.당신이 인수없이 몽고를 실행하면 그것이 기본 위치를 사용 그래서 프로덕션 시스템에서 실행한다고 가정합니다.

    당신이 인수없이 몽고를 실행하면 그것이 기본 위치를 사용 그래서 프로덕션 시스템에서 실행한다고 가정합니다.

    자신의 데이터베이스 (DEV하거나 다른 하나를) 사용 :

    ./bin/mongod --dbpath ~/data/db
    
  8. ==============================

    8.나는 나의 창 관리자와 함께 / 데이터 / DB 폴더를 만들어이 동일한 문제를 통해 얻었다. 나는 처음에 터미널하지만 그 일을 시도하고 루트 디렉토리에 폴더를 생성하기 위해, 나는 sudo를를 사용했다.

    나는 나의 창 관리자와 함께 / 데이터 / DB 폴더를 만들어이 동일한 문제를 통해 얻었다. 나는 처음에 터미널하지만 그 일을 시도하고 루트 디렉토리에 폴더를 생성하기 위해, 나는 sudo를를 사용했다.

    난 그냥 파인더를 사용하여 루트 디렉토리로 가서 '새 폴더'를 사용하여 새 폴더를 만들었습니다. 완전히 나를 위해 일했다.

    참고 : 나는 OSX를 사용하고 있습니다.

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

    9.나는 기존의 MongoDB를 설치하여이 문제를 가지고 있었다. 그 일이 왜 아직도 잘 모르겠지만, 어떤 이유로 Mongod 프로세스는 mongod.config 파일을 찾을 수 없습니다. 이 설정 파일을 찾을 수 없습니다 때문에 / 데이터 / dB, 존재하지 않는 폴더에 DB 파일을 찾기 위해 노력했다. 내가 프로세스가 설정 파일에 권한이 있는지 다음과 같이 --config 플래그와 함께 mongod 프로세스를 실행했다 있도록하지만, 설정 파일은 여전히 ​​유효했다 :

    나는 기존의 MongoDB를 설치하여이 문제를 가지고 있었다. 그 일이 왜 아직도 잘 모르겠지만, 어떤 이유로 Mongod 프로세스는 mongod.config 파일을 찾을 수 없습니다. 이 설정 파일을 찾을 수 없습니다 때문에 / 데이터 / dB, 존재하지 않는 폴더에 DB 파일을 찾기 위해 노력했다. 내가 프로세스가 설정 파일에 권한이 있는지 다음과 같이 --config 플래그와 함께 mongod 프로세스를 실행했다 있도록하지만, 설정 파일은 여전히 ​​유효했다 :

    mongod --config /etc/mongod.conf
    

    설정 파일 자체에서 나는이 설정을했다 :

    storage:
      dbPath: /var/lib/mongodb
    

    그리고이 프로세스가 다시 실제 DB 폴더를 찾을 수있는 방법이다.

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

    10.내가 그랬어

    내가 그랬어

    brew install mongodb
    

    2018년 2월 1일에 그 날 버전 3.6.2 MongoDB를했다.

    위의 orluke에서 답하라는 메시지가, 난 그냥 시도

    $ brew services restart mongodb
    

    모든 것이 삶에 뛰어 올랐다. 내 mongoose.createConnection () 호출 내가 원하는 것을했다. GUI를 MongoDB를 나침반, 커뮤니티 버전은 연결하는 것입니다. 나는 local.startup_log 수집보고 나침반을 사용했다. 즉 하나 개의 문서 나 그냥 MongoDB의 서비스를 시작 로그를했다, 그리고 그 있었다

    cmdLine:Object
        config:"/usr/local/etc/mongod.conf"
    

    실제로 이러한 파일이 있었다 :

    $ more /usr/local/etc/mongod.conf
    systemLog:
      destination: file
      path: /usr/local/var/log/mongodb/mongo.log
      logAppend: true
    storage:
      dbPath: /usr/local/var/mongodb
    net:
      bindIp: 127.0.0.1
    

    모호한 파일을 많이 가진 / usr / 지방은 / var / MongoDB의 디렉토리 있었다. 그래서 이제 설치가 어떻게 작동하는지 것 같다.

    나는 BREW 서비스 세트를 로그인에 실행되도록 서비스를 다시 시작 아니에요 확인합니다. 그래서 내가 그랬어

    brew services stop mongodb
    brew services start mongodb
    

    그리고 다시 재부팅 한 후 그 시작을 희망했다. 그리고, 실제로는 않았다. 초기 설치 후 사실, 지금은 옳은 일을 할 생각

    brew services start mongodb
    

    그리고이 서비스를 시작하고 재부팅 후 다시 시작해야합니다.

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

    11.귀하의 명령은 현재 폴더의 디렉토리 구조가 아닌 컴퓨터의 루트 디렉토리 (누락 / 바로 이것이다) 만든 것입니다.

    귀하의 명령은 현재 폴더의 디렉토리 구조가 아닌 컴퓨터의 루트 디렉토리 (누락 / 바로 이것이다) 만든 것입니다.

    첫 번째 명령은 옳았다,하지만 당신은 폴더를 만들려고하기 때문에 / 보호 된 디렉토리이다, 당신은 짧게는 "수퍼 유저 어떻게"sudo는, 그것을 접두사해야합니다. 그런 다음 암호를 입력하라는 메시지가 표시됩니다.

    그래서에게 전체 명령은 다음과 같습니다

    $ sudo mkdir -p /data/db
    
  12. ==============================

    12.당신은 / DB / ...라고 거기에라는 디렉토리 / 데이터 / 루트에서 (즉, /)와 하위 폴더입니다 ... / 데이터 / DB를 생성해야

    당신은 / DB / ...라고 거기에라는 디렉토리 / 데이터 / 루트에서 (즉, /)와 하위 폴더입니다 ... / 데이터 / DB를 생성해야

    당신이 맥 OS의 루트 디렉토리에 디렉토리를 만들 sudo를 사용해야하기 때문에 당신은 권한 오류를 받고있어, sudo를 사용하면 관리자 권한으로 명령을 실행할 수 있습니다.

    그래서, 대신를 실행 ...

    $ sudo mkdir -p /data/db
    

    이것은 당신이 시스템 설정을 변경하고 로그인에 사용할 때 가능성이 같은 (당신이 시도하고 ecample을위한 시스템 환경 설정의 변경 일 때 열리는 그 작은 대화)에 사용하는 것과 같은 비밀번호입니다, 암호를 묻는 메시지가 표시됩니다.

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

    13.당신은 당신에 대한 루트 액세스 권한이없는 디렉토리를 만들려고하고 있습니다.

    당신은 당신에 대한 루트 액세스 권한이없는 디렉토리를 만들려고하고 있습니다.

    MongoDB의 테스트를 위해, 나는 단지처럼 내 사용자 디렉토리에서 디렉토리를 사용 :

    cd
    mkdir -p temp/
    mongod --dbpath .
    

    이것은 현재 작업 디렉토리에서 / 온도에 몽고 데이터베이스를 만들 것입니다

  14. ==============================

    14.그냥 빨리 참고 :

    그냥 빨리 참고 :

    먼저 사용 권한을 변경하지 않고 mongod를 실행하려고하면 가능성 / 데이터 / DB 디렉토리에 mongod.lock 파일 (및 기타 파일)을해야합니다. 당신이 당신의 $ 사용자에게 액세스 권한을 부여 할 수있는 / 데이터 / db 디렉토리에 대한 사용 권한을 변경 후에도, 당신은 "만들 수 없습니다 개방 / 잠금 파일을 얻을 계속합니다 : /data/db/mongod.lock의 errno는 13 권한이 거부 "오류가 발생했습니다. LS -al / 데이터 / DB를 실행하고 당신은 아마 개별 파일에 대한 권한이 아직도 당신의 $ 사용자에게, 사용자의 루트로 설정되어 있는지 확인할 수 있습니다. 당신은 mongod.lock 파일을 제거하고, 다른 사람들도한다. 그런 다음 다시 mongod를 실행하면, 모든 작동합니다, 파일 사용 권한이 LS 다시 -al 실행하여 디렉토리 권한을 일치하는지는 확인할 수 있습니다.

  15. ==============================

    15.이 날짜까지 나는 또한 우리가 mongod 명령을 시작하기위한 그 / 데이터 / DB 폴더를 만들 필요가 있다고 생각하는 데 사용됩니다.

    이 날짜까지 나는 또한 우리가 mongod 명령을 시작하기위한 그 / 데이터 / DB 폴더를 만들 필요가 있다고 생각하는 데 사용됩니다.

    그러나 최근에 나는 서비스 명령을 mongod을 시작 시도하고 나를 위해 일한 및 / 데이터 / DB 디렉토리를 만들 필요가 없었다.

    service mongod start
    

    mongod의 상태를 확인로서 당신은 다음과 같은 명령을 실행할 수 있습니다.

    service mongod status
    
  16. ==============================

    16.당신이 줄 수있는 사용 가능한 사용자 ID를보기 위해 터미널에 "ID"를 입력, 그럼 간단하게 입력

    당신이 줄 수있는 사용 가능한 사용자 ID를보기 위해 터미널에 "ID"를 입력, 그럼 간단하게 입력

    "sudo는 대한 Chown -R idName에는 / 데이터 / dB"

    이 날 위해 일했다! 이 문제를 해결 바랍니다.

  17. ==============================

    17.MongoDB를보다 최신 버전으로, 내가 3.2.10을 가지고, 그것은에 기본값으로 저장

    MongoDB를보다 최신 버전으로, 내가 3.2.10을 가지고, 그것은에 기본값으로 저장

    은 / var / lib 디렉토리 / MongoDB를

  18. ==============================

    18.내가 MongoDB를 시작하려고 할 때 나는 다음과 같은 오류가 있었다.

    내가 MongoDB를 시작하려고 할 때 나는 다음과 같은 오류가 있었다.

    "shutting down with code:100" 
    

    나는 다음과 같은 명령을 사용했다 :

    ./mongod --dbpath=~/mongo-data
    

    나에 대한 수정 내가 "="기호가 필요하지 않았고,이 오류를 일으키는 것이 었습니다. 그래서 내가 그랬어

    ./mongod --dbpath ~/mongo-data
    

    그냥 어떤 방법 지정에 오류가 이것이 문제가 있음을하기 때문에이이 밖으로 던져 싶었다. 나는 거의 그 도움이 있는지 확인하기 위해 ~ / 몽고 데이터 디렉토리의 내용을 제거했습니다. 다행 나는 CLI 인수는 때때로 "="기호를 사용하지 않는 것이 기억했다.

  19. ==============================

    19.이 솔루션은 내 문제를 해결

    이 솔루션은 내 문제를 해결

    당신이 mongod를 시작하는 다른 오류 또는 문제를 얻을 경우, 당신은 문제를 찾을 수 있습니다

    ps ax | grep mongod
    sudo kill ps_number
    

    와 MongoDB를 실행 포트를 찾아 프로세스를 종료. 또 다른 방법으로 mongod를 시작할 때 특정 포트를 확인하는 것입니다

    sudo mongod --port 27018
    
  20. from https://stackoverflow.com/questions/7948789/mongod-complains-that-there-is-no-data-db-folder by cc-by-sa and MIT license