복붙노트

[MONGODB] 우분투에 MongoDB를 로그에서 서비스, 아무것도로 시작되지 않습니다

MONGODB

우분투에 MongoDB를 로그에서 서비스, 아무것도로 시작되지 않습니다

우분투에 MongoDB를 2.2을 실행하고 나는 실행하는 경우입니다 :

sudo mongod

나는 데이터베이스입니다하지 않습니다 / 데이터 / DB를 찾을 수 없다는 오류가 발생합니다. mongod.conf에서 데이터베이스 경로가 우분투 10gen 기본값으로 지정은 / var / lib 디렉토리 / MongoDB를 DB를가 위치한 곳이다. mongod는 conf의 파일을 찾지 못하는 것처럼 보인다. 내가 도망 그래서 :

sudo mongod -f /etc/mongodb.conf

서버는 벌금을 시작하고 출력은 로그 파일에 기록됩니다 /var/log/mongodb/mongodb.log합니다. 모두가 행복하다. 나는, 몽고 쉘에 로그인, 다른 쉘로 전환 데이터베이스 및 실행 쿼리를 볼 수 있습니다.

그래서, 그 밖으로 취소하고 서비스로 실행하려고 :

> sudo status mongodb
mongodb stop/waiting
> sudo start mongodb
mongodb start/running, process 10468

지금까지 잘 보이는,하지만 몽고 서버가 시작되지 않았습니다. 또 다른 실행 :

> sudo status mongodb
mongodb stop/waiting
> mongo
MongoDB shell version: 2.2.0
connecting to: test
Sat Sep  1 19:07:43 Error: couldn't connect to server 127.0.0.1:27017 src/mongo/shell/mongo.js:91
exception: connect failed

"테스트"올바른 데이터베이스하지 않고, 아무것도 로그 파일에 표시되지 않습니다.

내가 잘못 될 수 있는지에 관해서는 딱하다. 나는 신출내기 스크립트를 확인하고 잘 보인다. /etc/init/mongodb.conf 실행 :

mongodb --exec  /usr/bin/mongod -- --config /etc/mongodb.conf

해결법

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

    1.OK,이 모든 권한 온다, 그러나하자가 단계적으로 취할. / 데이터 / DB 등의 포트 27017, 데이터베이스 경로 - - 당신이 실행하면 sudo는 그것을 전혀 설정 파일을로드하지 않습니다 mongod, 그것은 문자 그대로 기본값으로 컴파일 시작 찾을 수 없다는 대한 오류가 발생했습니다 이유는 해당 폴더. 당신이 (당신이 서비스 명령을 사용하여 시작하는 경우,이 무대 뒤에서 당신을 위해 수행) config 파일에서 그것을 지적하면 "우분투의 기본은"에만 사용됩니다.

    OK,이 모든 권한 온다, 그러나하자가 단계적으로 취할. / 데이터 / DB 등의 포트 27017, 데이터베이스 경로 - - 당신이 실행하면 sudo는 그것을 전혀 설정 파일을로드하지 않습니다 mongod, 그것은 문자 그대로 기본값으로 컴파일 시작 찾을 수 없다는 대한 오류가 발생했습니다 이유는 해당 폴더. 당신이 (당신이 서비스 명령을 사용하여 시작하는 경우,이 무대 뒤에서 당신을 위해 수행) config 파일에서 그것을 지적하면 "우분투의 기본은"에만 사용됩니다.

    다음으로이처럼 실행 :

    sudo mongod -f /etc/mongodb.conf
    

    문제 이전에 존재하지 않았던 경우는, 지금이있을 것이다 - 당신은 당신의 일반 설정으로 루트 사용자로 (평소 DBPATH 및 로그 가리키는) 프로세스를 실행했다. 루트 그룹 : 루트가가는 것을 그 말은 이제 사용자와 그 정상 MongoDB의 폴더에있는 파일의 숫자 여야합니다.

    다시 정상적인 서비스로 시작하려고하면 (서비스로 실행하려고 시도합니다)에 MongoDB를 사용자가 액세스하는 루트 권한이 없기 때문에이 오류가 발생합니다 : 루트 파일을, 그리고 특히, 아마하지 않습니다 당신에게 정보를 제공하기 위해 로그 파일에 기록 할 수 있습니다.

    따라서, 정상적인 서비스로 실행하기 위해, 우리는 그 권한을 수정해야합니다. 먼저, MongoDB를 현재 다음, 루트로 확실히 실행되지 않았는지 확인합니다 :

    cd /var/log/mongodb
    sudo chown -R mongodb:mongodb .
    cd /var/lib/mongodb
    sudo chown -R mongodb:mongodb .
    

    즉 (사용자 가정 : 그룹 MongoDB에 있습니다 : MongoDB를) 그것을 수정해야, 그것은해야 할 -al 또는 유사한 LS에 확인하는 것이 가장 비록. 이 작업이 완료되면 다시 성공적으로 시작하는 서비스를받을 수 있어야합니다.

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

    2.MongoDB의 사용자 / 그룹 데이터 디렉토리 및 로그 파일에 모두 기록 할 수있는 권한이 있는지 먼저 확인 :

    MongoDB의 사용자 / 그룹 데이터 디렉토리 및 로그 파일에 모두 기록 할 수있는 권한이 있는지 먼저 확인 :

    다음 명령을 사용하여 데몬 (백그라운드 프로세스)로하여 MongoDB를 시작합니다 :

    아래 MongoDB를가 몽고 CLI 액세스 관리자를 입력하고 종료 명령을 실행 종료하려면 :

    참조 : http://www.mongodb.org/display/DOCS/Starting+and+Stopping+Mongo

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

    3.저도 같은 문제가 있었다. 나는 CD / var에 갔다 / lib 디렉토리 / MongoDB를 /와 mongod.lock 파일을 삭제 그래서 그럼 날 위해 일했습니다.

    저도 같은 문제가 있었다. 나는 CD / var에 갔다 / lib 디렉토리 / MongoDB를 /와 mongod.lock 파일을 삭제 그래서 그럼 날 위해 일했습니다.

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

    4.@nelsonic에 의해 제안 데이터, 저널 및 로그 폴더의 모든 권한을 확인한 후, 내 문제는 / tmp를 폴더에 잠금 파일에 대한 권한을 제공함으로써 해결되었다

    @nelsonic에 의해 제안 데이터, 저널 및 로그 폴더의 모든 권한을 확인한 후, 내 문제는 / tmp를 폴더에 잠금 파일에 대한 권한을 제공함으로써 해결되었다

    sudo chown mongod:mongod mongodb-27017.sock  
    

    나는 AWS 아마존 리눅스 인스턴스로 실행되었다. 나는 에러 코드를 연구, 다음 아래로 mongod 사용자로 실행 및하여 해당 아웃 생각. 그것은 다른 문제 해결에 유용 할 수 있습니다.

    sudo -S -u mongod mongod -f /etc/mongod.conf
    
  5. ==============================

    5.나를 위해 일한 것도, 그때는 권한 문제의 / tmp 디렉토리 것을 발견했습니다 :

    나를 위해 일한 것도, 그때는 권한 문제의 / tmp 디렉토리 것을 발견했습니다 :

    sudo chmod 1777 /tmp
    sudo chown root:root /tmp
    
  6. ==============================

    6.위의 답변 중 아무도 나를 위해 일하지 않는다. 나는 마지막으로 init 스크립트를 디버깅하여 알아 낸 :

    위의 답변 중 아무도 나를 위해 일하지 않는다. 나는 마지막으로 init 스크립트를 디버깅하여 알아 낸 :

    sudo는 bash는 -x /etc/init.d/mongodb 시작

    그리고 그것은 mongod하는 잘못된 설정 경로를 통과 한보고. 단순히 "=은 / etc / mongod.conf CONF"를 "=은 / etc / mongodb.conf CONF"에서 /etc/init.d/mongodb의 라인을 변경했습니다. 2 개 사용 버전 이전 및 설치 버전 3은 새로운 형식 /etc/mongod.conf을 추가하지만 분명히 초기화 스크립트를 업데이트하지 않았습니다.

    UPDATE : 지금 초기화 스크립트 작품,하지만 난 그것을 실행하는 경우에만 "sudo는 bash는 -x /etc/init.d/mongodb 시작"가 아니라 "시작 MongoDB를 sudo는 서비스"에 훨씬 낯선 문제가 있습니다. 정지에 대한 똑같은.

  7. ==============================

    7.그냥이 명령을 시도 :

    그냥이 명령을 시도 :

    sudo chown mongodb /tmp/mongodb-27017.sock
    
  8. ==============================

    8.하지만 사용자 = mongod와 서비스로는 mongod 사용자로 명령 줄에서 시작시 내 MongoDB를가 시작했다. 시간 검사 권한 후, 서비스의 정의는 ... 그것은 SELinux를 소켓이었다!

    하지만 사용자 = mongod와 서비스로는 mongod 사용자로 명령 줄에서 시작시 내 MongoDB를가 시작했다. 시간 검사 권한 후, 서비스의 정의는 ... 그것은 SELinux를 소켓이었다!

    에서의 / etc / SELinux가 / 설정 내가 허용하고 재부팅을 강제로 전환. 지금은 괜찮습니다.

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

    9.위의 답변 없음 후 내 로그 파일이 생활에 몽고의 다시 가져 삭제, 날 위해 일했습니다.

    위의 답변 없음 후 내 로그 파일이 생활에 몽고의 다시 가져 삭제, 날 위해 일했습니다.

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

    10.당신이 mongod 업데이트되었습니다하고 실행하고 기존 데이터베이스 경우 이러한 일이 오류가 발생할 수 있습니다. Mongod는 기본적으로 wiredTiger 엔진을 사용하는 것입니다 그리고 당신은 mmapv1 데이터베이스를해야합니다

    당신이 mongod 업데이트되었습니다하고 실행하고 기존 데이터베이스 경우 이러한 일이 오류가 발생할 수 있습니다. Mongod는 기본적으로 wiredTiger 엔진을 사용하는 것입니다 그리고 당신은 mmapv1 데이터베이스를해야합니다

    /etc/mongod.conf에서 엔진 설정을 편집

    # engine: wiredTiger
    engine: mmapv1
    

    주의 - YAML은 공백 민감

    journalctl / systemd이 문제를 볼 수 없습니다. /var/log/mongodb/mongod.log의 mongod 로그를 확인하십시오

    난 당신이 여기에 설명 된 단계 같은 것을 사용하여 데이터베이스를 변환 할 수 있습니다 추정

    https://docs.mongodb.com/manual/tutorial/change-standalone-wiredtiger/

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

    11.잘으로는 / var / 로그가 꽉 찬 경우, 서비스 할 수 있기 때문에하지 APPEND 로그를 사용자의 하드 디스크 공간을 확인.

    잘으로는 / var / 로그가 꽉 찬 경우, 서비스 할 수 있기 때문에하지 APPEND 로그를 사용자의 하드 디스크 공간을 확인.

  12. from https://stackoverflow.com/questions/12232166/mongodb-on-ubuntu-wont-start-as-a-service-nothing-in-the-log by cc-by-sa and MIT license