programing

내 몽고드브를 어떻게 수리합니까?

newsource 2023. 5. 10. 21:12

내 몽고드브를 어떻게 수리합니까?

로컬 컴퓨터에 Windows 서비스로 설치한 Mongo DB에 연결할 수 없습니다.MongoDB와 통신하는 작은 WPF 애플리케이션도 만들었습니다.오류 메시지:

오류: 서버 127.0.0.1 셸/mongo에 연결할 수 없습니다.js:84 예외: 연결 실패 부정 종료가 탐지되었습니다.

다음과 같이 시작해야 합니다.--repair깃발

mongod --repair

수리가 완료되면 이 작업을 중지하고 정상적으로 시작합니다.--repair 옵션에 대한 문서입니다.

더 빠른 속도:

sudo rm /data/db/mongod.lock
sudo mongod --dbpath /data/db --repair
sudo mongod --dbpath /data/db

루트 사용자로 복구 작업을 수행하는 경우 나중에 모든 db 파일을 mongodb 사용자가 소유해야 합니다. 그렇지 않으면 mongodb가 시작되지 않습니다.

chown -R mongodb:mongodb /data/db
rm /data/db/mongod.lock
/etc/init.d/mongodb start
$ mongo 
> use dbname
> db.repairDatabase()

참고 --repairDatabase() 도우미를 사용하여 repairDatabase 명령에 대한 db.repairDatabase() 도우미를 사용하여 셸에서도 복구 기능을 사용할 수 있습니다.

http://docs.mongodb.org/manual/tutorial/recover-data-following-unexpected-shutdown/ 도 참조하십시오.

기본 패키지 대신 Ubuntu에서 공식 MongoDB repo를 사용하는 경우 수락된 답변이 작동하지 않습니다.

mongod명령, 기본적으로 사용/data/db기본 구성 설정으로 사용하는 반면에/etc/mongodb.conf사용하다/var/lib/mongodb길로서그러므로 당신이 그냥 한다면,mongod --repair데이터베이스 복구를 시도합니다./data/db그것은 잘못된 길입니다.

또한 당신이 실행한다면,mongod처럼root사용자, 생성된 모든 파일은 다음 사용root그래서 당신은 수리를 실행해야 합니다.mongodb사용자의

이것이 제가 결국 그것을 작동시키기 위해 한 일입니다.

sudo chown -R mongodb: /var/lib/mongodb # Just to make sure permissions are correct
sudo -u mongodb mongod --dbpath /var/lib/mongodb --repair
sudo service mongodb start

아래와 같이 명령을 작성하면 문제가 해결될 것으로 생각합니다.

cd data/

rm -rf mongod.lock*

cd ..

mongod --repair

./mongod

이 단계에 따라 mondoDB를 새로 다시 시작합니다.

1, mongod가 실행 중인 모든 프로세스 제거

이렇게 하려면 포트 27017에서 실행 중인 각 프로세스를 강제로 종료합니다(mongodb의 기본 포트).

lsof -n -i4TCP:27017여기서 27017은 프로세스가 실행 중인 포트 번호입니다.

프로세스 ID(PID)와 실행을 반환합니다.

kill -9 "PID"PID를 첫 번째 명령을 실행한 후 얻은 숫자로 바꾸기

2, 몽고를 다시 시작합니다.mongod지휘권

언급URL : https://stackoverflow.com/questions/9953295/how-to-repair-my-mongodb