mongodb 서비스가 시작되지 않습니다
mongodb-10gen debian 패키지를 사용하여 mongodb 2.0.3을 설치했습니다. 기본적으로 설치된 서비스가 컴퓨터가 시작될 때 시작되지 않는 것을 제외하고는 모든 것이 잘되었습니다. 는 mongod
단지 루트 사용자로 실행 중입니다. 아마도 이것이 이유 일 것입니다. 하지만 내가 아는 한, 서비스는 루트 사용자가 추가했기 때문에 실행 중이어야합니다.
해결책은 무엇일까요?
내가 그냥 달리면 mongod
Tue Mar 27 13:00:44 [initandlisten] couldn't open /data/db/transaction_processor_dummy_development.ns errno:1 Operation not permitted
실행 sudo service mongodb start
하면 다음과 같이 표시됩니다.
mongodb start/running, process 4861
그러나 다음 htop
과 mongo
같이 보고 말할 때 프로세스가 없습니다 .
MongoDB shell version: 2.0.3
connecting to: test
Tue Mar 27 13:02:40 Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84
exception: connect failed
내 우분투 서버에서 다음을 실행하십시오.
sudo rm /var/lib/mongodb/mongod.lock
mongod --repair
sudo service mongodb start
결정된!
그 이유는 있었다 dbpath
변수 /etc/mongodb.conf
. 이전에는 mongodb 1.8을 사용했는데 dbpath의 기본값은 /data/db
. upstart 작업 mongodb
(mongodb-10gen 패키지와 함께 제공됨)은 mongod
with --config /etc/mongodb.conf
옵션을 호출합니다 .
해결책으로 /data/db
디렉토리 소유자를 재귀 적 으로 변경하기 만하면되었습니다.
이는 파일 권한이 어떻게 든 변경된 경우에도 발생할 수 있습니다. 잠금 파일을 제거해도 도움이되지 않았으며 로그 파일에 다음과 같은 오류가 발생했습니다.
2016-01-20T09:14:58.210-0800 [initandlisten] warning couldn't write to / rename file /var/lib/mongodb/journal/prealloc.0: couldn't open file /var/lib/mongodb/journal/prealloc.0 for writing errno:13 Permission denied
2016-01-20T09:14:58.288-0800 [initandlisten] couldn't open /var/lib/mongodb/local.ns errno:13 Permission denied
2016-01-20T09:14:58.288-0800 [initandlisten] error couldn't open file /var/lib/mongodb/local.ns terminating
그래서 권한을 확인했습니다.
ls -l /var/lib/mongodb
total 245780
drwxr-xr-x 2 mongodb mongodb 4096 Jan 20 09:14 journal
drwxr-xr-x 2 root root 4096 Jan 20 09:11 local
-rw------- 1 root root 67108864 Jan 20 09:11 local.0
-rw------- 1 root root 16777216 Jan 20 09:11 local.ns
-rwxr-xr-x 1 mongodb nogroup 0 Jan 20 09:14 mongod.lock
고치다:
# chown -R mongodb:mongodb /var/lib/mongodb
잠금 파일이 아직 있으면 제거하십시오.
# rm /var/lib/mongodb/mongod.lock
mongodb 시작
# service mongodb start
로그를 뒤 따르면 끝에서 볼 수 있습니다.
tail -f /var/log/mongodb/mongodb.log
2016-01-20T09:16:02.025-0800 [initandlisten] waiting for connections on port 27017
나는 한 지루 내 몽고 데이터를 쉽게 기초를 복원하는 쉘 스크립트를 작성하기로 결정 그래서이 문제.
#!/bin/sh
sudo rm /var/lib/mongodb/mongod.lock
sudo -u mongodb mongod -f /etc/mongodb.conf --repair
sudo service mongodb start
.lock 파일을 강제로 제거하여 데이터베이스를 다시 시작하면 데이터가 손상 될 수 있습니다. 그런 식으로 서버를 다시 시작한 경우 서버가 "정상"으로 간주되지 않아야합니다.
상황을 수정하려면
mongod --repair
또는
> db.repairDatabase();
mongo 셸에서 데이터베이스를 "정상"상태로 되돌립니다.
1- 활성화 된 경우 옵션 비활성화fork
/etc/mongodb.conf
2- 데이터베이스 복구
mongod --repair --dbpath DBPATH
3- 현재 mongod 프로세스 종료
몽고 프로세스 찾기
ps -ef | grep mongo
당신은 mongod PID를 얻을 것입니다
mongodb PID 1 0 06:26 ? 00:00:00 /usr/bin/mongod --config /etc/mongodb.conf
현재 mongod 프로세스 중지
kill -9 PID
4- mongoDB 서비스 시작
service mongodb start
우분 토의 경우 mongodb 패키지를 설치하는 것이 정말 간단했습니다.
sudo apt-get install mongodb
서비스를 실행하기 위해 .lock 파일을 제거해야하는 경우가 있습니다.
몽고를 다시 설치했고 작동했습니다. 손실 된 컬렉션이 없습니다. 나를위한 가장 쉬운 솔루션
Nianliang's solution turned out so useful from my Vagrant ubunuto, thart I ended up adding these 2 commands to my /etc/init.d/mongodb file:
.
.
.
start|stop|restart)
rm /var/lib/mongodb/mongod.lock
mongod --repair
.
.
.
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
sudo service mongodb start
This can also happen if the disk is full at your logpath
path (e.g. if you have a dedicated /log/
directory/drive and it is full).
This had me panicking for a good 15 minutes because it also prevents you from reading the mongod.log
when starting the process, so difficult to troubleshoot.
Please check your permissions for "data" folder. This is a permission issue, as linux users will face this issue due to SE linux permissions. So you change the ownerand group both to "mongodb" for the "data" folder
I took a different approach:
Background: I use mongodb, single node, local to my server, as a staging area.
I installed mongo based on instructions available in MongoDB docs.
So, this is not 'prime' infrastructure, does not need to be up all the time - but still essential.
What I do: In my run script, I check if mongo is running using -
if pgrep "mongod" >/dev/null 2>&1
If it is not running, then I run
sudo mongod &
Been working like a charm, no setup etc.
If your use case is similar, let me know if it works for you too.
Good luck!
Install mongodb for ubuntu 14.04
sudo nano /etc/apt/sources.list.d/mongodb-org-3.2.list
echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install -y mongodb-org=3.2.10 mongodb-org-server=3.2.10 mongodb-org-shell=3.2.10 mongodb-org-mongos=3.2.10 mongodb-org-tools=3.2.10
I had issue that starting the service mongodb failed, without logs. what i did to fix the error is to give write access to the directory /var/log/mongodb for user mongodb
Recall that according to official MongoDB documentation, the right command to start the service is (@Ubuntu): sudo service mongod start
(06/2018) (no mongodb
or mongo
).
Reference: https://docs.mongodb.com/manual/tutorial/install-mongodb-on-ubuntu/
참고URL : https://stackoverflow.com/questions/9884233/mongodb-service-is-not-starting-up
'programing tip' 카테고리의 다른 글
ModelState.IsValid가 실패하면 오류 메시지가 표시됩니까? (0) | 2020.11.19 |
---|---|
NSString에 대한 열거 형 값 (iOS) (0) | 2020.11.19 |
Android 4.2에서 Action Bar의 옵션 메뉴 배경색을 변경하는 방법은 무엇입니까? (0) | 2020.11.19 |
고급 PHP 개발자를위한 MVC (0) | 2020.11.19 |
nokogiri gem 설치 오류 (0) | 2020.11.19 |