2016-08-08 7 views
3

mongodb에서 세 인스턴스의 복제본 세트를 만들었습니다. 복제본 집합의 각 구성원은 구성 파일을 사용하여 인스턴스화됩니다. 테스트를 마치면 모든 것이 잘되고 오류없이 성공적으로 실행되었습니다.mongo : 오류 : 자식 프로세스가 실패했습니다. 오류 번호 100으로 종료되었습니다.

제목에 오류를 생성하는 다음 단계는 내부 인증 사용입니다.

[A] https://docs.mongodb.com/v3.0/tutorial/enable-internal-authentication/

먼저, I는

I가 나오지 않았어
openssl rand -base64 755 > <path-to-keyfile> 
chmod 400 <path-to-keyfile> 

아래 두 줄의 코드를 이용하여 키 파일 생성 : 그렇게하기 위해서는, I는 해당 페이지에있는 몽고 문서를 따라 루트가 아닌 줄을 제외하고 루트를 사용하여 행을 만들었습니다.

그런 다음 키 파일을 인스턴스의 구성 파일에 추가했습니다.

# Where and how to store data. 
storage: 
    dbPath: /mon/data1/ 
journal: 
    enabled: true 
#engine: 
#mmapv1: 
#wiredTiger: 

#where to write logging data. 
systemLog: 
    destination: file 
    logAppend: true 
    path: /var/log/mongodb/mongod1.log 

#network interfaces 
net: 
    port: 27018 
    bindIp: 127.0.0.1 

processManagement: 
    fork: true 

security: 
    keyFile: /etc/keyFiles 

replication: 
    replSetName: "myRepl" 

지금 다시 몽고을 시작하기 위해, 나는 매번

sudo mongod --config /etc/mongod1.config 

을 사용하여 다음 명령을 썼다 나는 오류 위 얻었다. 나는 모든 것이 루트에 의해 소유되었음을 확인했다. dbpath, 구성 파일 및 키 파일.

그런 다음 일반 사용자가 소유 할 수 있도록 모든 것을 전환했으며 일반 사용자 (sudo가없는 사용자)로 mongod를 시작하려고했습니다. 같은 오류가 발생했습니다.

해결책은 무엇이라고 생각하십니까?

+0

당신이 당신의 몽고 로그를 게시 할 수 있습니까? – sergiuz

+0

mongod 로그 파일을보고 게시물에 관련 메시지를 추가하십시오. – helmy

답변

0

일반적으로 로그 파일에 무엇이 잘못되었는지 알려줍니다.하지만 몇 가지 변경을 시도 할 수 있습니다. 넣어 ""(같은 아래로 여기) 라운드 문자열을 추가 pidFilePath : 포크 : 사실 pidFilePath : processManagement

""/var/run/mongodb/mongod.pid

(물론 그 'monogdb '디렉토리는 사용자가 사용하는 mongod를 소유하고 있어야 함)

그런 다음 하나의 좋은 방법은 매개 변수 (및 --fork)로 설정 파일 값을 넣는 것입니다. 그러면 오류 메시지가 표시됩니다. 잘못됐다.

mongod --dbpath/월/DATA1/--logpath /var/log/mongodb/mongod1.log --logappend --keyFile을/etc/키 파일 --replSet myRepl

관련 문제