source

MongoDB.service가 결과 종료 코드와 함께 실패했습니다.

manysource 2023. 5. 25. 22:11

MongoDB.service가 결과 종료 코드와 함께 실패했습니다.

"sudo systemctl start mongod" 명령으로 mongoDB를 시작할 수 없습니다.

다음과 같은 메시지를 수신합니다.

● mongod.service - MongoDB Database Server
   Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Wed 2020-02-19 22:39:00 CET; 2s ago
     Docs: https://docs.mongodb.org/manual
  Process: 29368 ExecStart=/usr/bin/mongod --config /etc/mongod.conf (code=exited, status=14)
 Main PID: 29368 (code=exited, status=14)

Feb 19 22:39:00 pop-os systemd[1]: Started MongoDB Database Server.
Feb 19 22:39:00 pop-os systemd[1]: mongod.service: Main process exited, code=exited, status=14/n/a
Feb 19 22:39:00 pop-os systemd[1]: mongod.service: Failed with result 'exit-code'.

저는 이미 mongodb를 다시 설치했고 같은 문제가 있습니다.저는 당신이 저를 도와줄 수 있다면 그 오류가 어디서 왔는지 모릅니다.감사해요.

임시 해결을 위해 다음 두 가지 명령을 수행합니다.

sudo rm -rf /tmp/mongodb-27017.sock
sudo service mongod start

자세한 내용:

.sock 파일의 사용자 권한으로 인한 오류입니다. 소유자를 monogdb 사용자로 변경해야 할 수도 있습니다.

sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

자세한 내용은 설치 설명서를 참조하십시오.

나도 만자로에서 같은 문제를 겪었고 다음 명령들이 그것을 해결했습니다.

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

이것은 나에게 효과가 있었고 나는 MongoDB를 다시 설치하지 않습니다.수동으로 작성했습니다.

sudo mkdir /var/lib/mongodb
sudo mkdir /var/log/mongodb

그리고 둘 다 주인이 바뀌었습니다.

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

저도 같은 문제가 있어서 온라인에서 찾은 권한과 MongoDB 설치를 엉망으로 만든 다른 명령을 변경하려고 했습니다.다음은 온라인에서 시도하여 설치를 망친 명령입니다.

$ sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

$ sudo systemctl status mongod

$ sudo systemctl start mongodb

$ sudo systemctl unmask mongodb

그런 다음 다음 명령을 사용하여 mongodb를 다시 설치하여 문제를 해결했습니다.

$ sudo service mongod stop

$ sudo apt-get purge mongodb-org*

$ sudo rm -r /var/log/mongodb

$ sudo rm -r /var/lib/mongodb

$ sudo apt-get install -y mongodb-org

이제 mongodb를 시작하고 다음 명령을 사용하여 상태를 확인합니다.

$ sudo systemctl start mongod

$ sudo systemctl status mongod

이 두 개의 명령어로 문제가 해결되었습니다(Linux Mint 20.2).

sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

.sock 파일의 소유권 때문에 이 오류가 발생했습니다. 이 두 명령을 사용해 보십시오.

chown -R mongodb:mongodb /var/lib/mongodb
chown mongodb:mongodb /tmp/mongodb-27017.sock

이제 몽고 서버를 다시 시작합니다.

sudo systemctl start mongod

이제 다음 명령으로 mongo 서버의 상태를 확인할 수 있습니다.

sudo systemctl status mongod

이것은 당신에게 효과가 있을 것이고 MongoDB를 다시 설치하지 마세요.

sudo mkdir /var/lib/mongodb
sudo mkdir /var/log/mongodb

그런 다음 이 명령을 실행합니다.

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

시작mongod서비스

sudo service mongod start 

mongod.service될 것이다active

sudo service mongod status

나에게, 이것은 효과가 있습니다.

sudo systemctl stop mongod
sudo mongod --repair --dbpath /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock
sudo systemctl start mongod

여기 있는 다른 답변 중 로그 파일을 찾는 것에 대한 언급이 없다는 것이 이상합니다.항상 이것이 당신이 가장 먼저 해야 할 일입니다.Ubuntu에서는 다음 위치에 있습니다./var/log/mongodb/mongod.log.

저의 경우, 다음과 같은 메시지를 받았습니다.

{
   "t":{
      "$date":"2022-12-03T17:19:25.117+00:00"
   },
   "s":"F",
   "c":"CONTROL",
   "id":20574,
   "ctx":"main",
   "msg":"Error during global initialization",
   "attr":{
      "error":{
         "code":140,
         "codeName":"InvalidSSLConfiguration",
         "errmsg":"ssl client initialization problem for certificate: /etc/ssl/mongodb.pem :: caused by :: The provided SSL certificate is expired or not yet valid. notBefore 2022-08-22T21:15:57.000+00:00, notAfter 2022-11-20T21:15:56.000+00:00"
      }
   }
}

따라서 만료된 SSL 인증서를 업데이트하는 것이 해결책이었습니다.

암호화를 사용하는 경우 다음과 같습니다.--post-hook자동으로 이 작업을 수행하는 스크립트(example.com 를 도메인으로 변경):

#!/bin/bash
cat /etc/letsencrypt/live/example.com/{fullchain.pem,privkey.pem} | tee /etc/ssl/mongodb.pem 
chown mongodb:mongodb /etc/ssl/mongodb.pem
chmod 600 /etc/ssl/mongodb.pem

인증서가 이미 존재하는 경우 아래에 인증서를 추가할 수도 있습니다.[renewalparams]/etc/letsencrypt/renewal/example.com.conf

post_hook = /root/path/to/script.sh

또는 외부 스크립트에 연결하는 대신 한 줄로 연결하면 됩니다.

post_hook = cat /etc/letsencrypt/live/example.com/fullchain.pem /etc/letsencrypt/live/example.com/privkey.pem | sudo tee /etc/ssl/mongodb.pem && chown mongodb:mongodb /etc/ssl/mongodb.pem && chmod 600 /etc/ssl/mongodb.pem

다음 3단계를 통해 문제가 해결되었습니다.

sudo chown -R mongodb:mongodb /var/lib/mongodb
sudo chown -R mongodb:mongodb /var/log/mongodb
sudo chown mongodb:mongodb /tmp/mongodb-27017.sock

sudo mongod --dbpath /var/lib/mongodb/ --journal

AWS EC2 unbu 서버에서도 같은 문제가 있었습니다.결국 디스크에서 사용 가능한 공간이 부족하기 때문이라는 것을 알게 되었습니다.도망친df -h꽉 찬 파티션을 확인하고 AWS 콘솔의 볼륨과 비교합니다( 가이드가 도움이 되었습니다).

AWS 에서 사용 , AWS를 했습니다.sudo reboot now그리고 그 문제는 해결되었습니다.

언급URL : https://stackoverflow.com/questions/60309575/mongodb-service-failed-with-result-exit-code