programing

mongoDB 설치(하위 프로세스 실패, 오류 번호 100으로 종료)

lastmoon 2023. 6. 26. 21:35
반응형

mongoDB 설치(하위 프로세스 실패, 오류 번호 100으로 종료)

macbook air에 mongoDB를 설치하려고 했습니다.

저는 공식 웹사이트에서 압축파일을 다운받아서 그 파일의 압축을 풀고 루트 디렉터리로 이동했습니다.그 후 그 디렉토리 아래에 /data/db와 /log 폴더를 만들었습니다.

제 기내꺼입니다.mongodb.configDB의 기본 구성을 설명합니다.

dbpath = /mongodb/data/db
logpath = /mongodb/log/mongo.log
logappend = true
#bind ip = 127.0.0.1
port = 27017

fork = true
rest = true
verbose = true
#auth = true
#noauth = true

추로무, 저는엇이가 .#구성 파일의 의미입니다.

이 파일을 에 넣었습니다./mongodb/bin,/mongodb파일을 추출한 디렉토리입니다.

터미널을 열고 입장했습니다../mongod --config mongodb.config제가 이걸 되찾았습니다.

Juneyoung-ui-MacBook-Air:bin juneyoungoh$ ./mongod --config mongodb.config
about to fork child process, waiting until server is ready for connections.
forked process: 1775
all output going to: /mongodb/log/mongo.log
ERROR: child process failed, exited with error number 100

이 오류를 어떻게 처리해야 하며 이 오류가 의미하는 바는 무엇입니까?

는 생한데폴다더사음생용높가습다로 생성되었을 가능성이 .sudo네? 그들은 소유하고 있습니다.root일반 사용자가 쓸 수 없습니다.Macbook의 유일한 사용자인 경우 디렉토리의 소유권을 사용자로 변경합니다.

sudo chown juneyoungoh /data
sudo chown juneyoungoh /data/db
sudo chown juneyoungoh /data/log

공용 컴퓨터나 합법적인 곳에 이 프로그램을 설치할 계획이라면 다른 곳에서 mongo 보안 관행에 대해 자세히 읽어 보십시오.그냥 맥북으로 실행시켜 드릴게요.

저도 비슷한 문제가 있었는데 어떤 'sudo' 문제와도 관련이 없었습니다.나는 커널 패닉에서 회복하려고 노력하고 있었습니다!

데이터 폴더를 보니 mongod.lock 파일이 있었습니다.저의 경우 이 페이지가 많은 도움이 되었습니다: http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ .그들이 설명하듯이,

mongod.lock이 0바이트 파일이 아닌 경우 mongod는 시작을 거부합니다.

내 환경에서 이 솔루션을 테스트했는데 완벽하게 작동합니다.

  1. 제다한을 합니다.mongod.lockjava.
  2. 데이터베이스 복구: mongod --dbpath /your/db/path --repair
  3. 실행: mongod 행실:mongod --dbpath /your/db/path

제 기계에도 같은 문제가 있었습니다.로그 파일에는 다음이 있습니다.

09:7월 29일 오전 09:57:13.689 [initandlisten] 파일: 저널 파일에 가능한 부족합니다.
09 / 7월 29일 09:57:13.689 [initandlisten] /var/mongoexp/rs2/journal을 하십시오.MB를 사용하거나 --small files를 사용하십시오.

를 사용하여 해결되었습니다.mongod --smallfiles또는 구성 파일에서가 아닌 --config 옵션으로 mongod를 시작하는 경우 다음과 같이 미리 쓰기 저널링을 비활성화합니다.nojournal=true(시작 # 제거).디스크 공간을 조금 더 확보하면 위의 문제도 해결될 수 있습니다.

왜냐하면 당신은 아마도 mongodb를 제대로 종료하지 않았을 것이고 mongodb를 제대로 시작하지 못하고 있기 때문입니다.의 당신말따에 따라mongodb.config,당신은 가지고 있다dbpath = /mongodb/data/db그래서 저는 당신이 그 저장소를 만들었다고 생각합니다./mongodb/data/db모든 단계를 명확히 하겠습니다.

  1. MONGODB 시작하기

의 신의에서.mongodb.config dbpath = /mongodb/data/dbdbpath = /data/db에서 다음과 같이.mkdir /data/db이제 저장소가 있습니다. 몽고를 시작할 수 있습니다.

하려면 다음과 같이합니다.mongod --dbpath /data/db --fork --logpath /dev/null.

  • /data/dbDB의 위치입니다.
  • --fork당신이 배경에서 몽고를 시작하고 싶다는 뜻입니다 - 데몬.
  • --logpath /dev/null기록하지 않겠다는 의미 - 대체하여 변경할 수 있습니다./dev/null과 같은 /var/log/mongo.log

    1. MONGODB 종료하기

합니다.mongo그리고 나서.use admin그리고.db.shutdownServer()mongoDB에서 설명하는 것처럼.

이 기술이 어떤 이유로 작동하지 않으면 언제든지 프로세스를 종료할 수 있습니다.

하여 mongodb lsof -i:27017 mongodb에서 합니다.27017

kill <PID>, 파일 이름<PID>이전 명령을 찾은 값을 기준으로 합니다.

- 스크립트를 . - 복구 스크립트를 실행하려고 했습니다.sudo -u mongodb mongod -f /etc/mongodb.conf --repair

ps aux | grep mongo데몬이 실행되고 있는지 확인합니다.이를 중지한 다음 복구 스크립트가 문제 없이 실행됩니다.

그것이 다른 누군가에게 도움이 될 수 있기를 바랍니다.

Linux(Centos)에서도 동일한 오류가 발생했으며 이는 저에게 효과가 있었습니다.

  1. dbpath에서 mongod.lock을 제거합니다.

    $ rm /var/lib/mongo/mongod.lock

  2. mongod 프로세스 수리

    $ mongod --repair

  3. mongod 구성 실행

    $ mongod --config /etc/mongod.conf

저도 같은 오류가 있었습니다.로그를 보기 위해 대화형으로 실행했습니다.

2014-10-21T10:12:35.418-0400 [initandlisten] ERROR: listen(): bind() failed errno:48 Address already in use for socket: 0.0.0.0:27017

그다음에 제가.lsof어떤 프로세스가 내 포트를 사용하는지 확인합니다.

$ lsof -i:27017
COMMAND  PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
mongod  2106 MYUSERID   10u  IPv4 0x635b71ec3b65b4a1      0t0  TCP *:27017 (LISTEN)

은 것은였습니다.mongod(바시 창에서 실행되는 것을 보지 못했기 때문에) 이전에 포크를 사용하여 끄는 것을 잊었습니다.도망쳐 죽이는 것만으로도kill 2106오류 100 없이 프로세스를 실행할 수 있도록 했습니다.

일반적으로 이 오류는 mongod.conf 파일이 데이터베이스 저장소나 로그 저장소 또는 processid 저장소에 대한 특정 경로를 찾을 수 없거나 mongod.conf에 선언된 구성 디렉터리 및 파일에 액세스할 수 있는 파일 권한을 얻지 못하는 경우에 발생합니다.

이 오류를 해결하려면 MongoDB에 의해 생성된 로그를 관찰해야 합니다. MongoDB가 액세스할 수 없는 파일 또는 디렉토리를 명확하게 표시합니다.

위의 오류는 아래 스크린샷처럼 보일 수 있습니다.

enter image description here

서버의 "/" 경로에 폴더 "data"와 "db"를 만듭니다. 실제로 데이터를 저장할 폴더의 권한을 만들거나 수정해야 합니다!

언급URL : https://stackoverflow.com/questions/15963147/install-mongodb-child-process-failed-exited-with-error-number-100

반응형