2012-06-14 3 views
1

Mongo 컬렉션을 시드하기 위해 로컬 머신에서 Rails rake 태스크를 밤새 실행하고있었습니다. 나는 다음과 같은 예외가 받기 전에 그것은 아마 약 45,000 레코드를 생성했다 : 나는 맥 OS X 오전Mongo : 연결 및 컬렉션 연결이 끊어졌습니다.

Operation failed with the following exception: connection closed 

Failed to connect to a master node at localhost:27017 

를, 그래서 mongo을 시도하고받은 다음

Error: couldn't connect to server 127.0.0.1 shell/mongo.js:84 
exception: connect failed 

그래서 나는 mongod 생각을 실행 이것은 단순히 프로세스를 시작한다는 것입니다. 이제 모든 컬렉션이 비어 있기 때문에 새 컬렉션의 색인이 생성 된 것 같습니다. 내가 그들을 덮어 씌웠 는가, 아니면 여전히 그들이 어딘가에 존재할 수 있는가?

나는 ls /data/db을 실행했으며 myapp_development.0myapp_development.ns을 참조했습니다. 그게 나에게 말해 줄 수 있니?

+0

시스템을 재시작했는데 이제는 문제가 없습니다. ??? –

답변

2

MongoDB 데이터 디렉토리와 같은 소리가 기본값 (/ data/db)이 아닌 다른 위치로 설정되었습니다. 다시 시작하면 올바른 --dbpath로 mongod가 시작되었을 것입니다.

예를 들어, MAMP 설치 가이드를 따른다면 데이터 디렉토리를/Applications/MAMP/db/mongo에 넣는 것이 좋습니다.

당신은 몽고 JS 쉘에서 다음 명령을 실행하여 사용 DBPATH을 찾을 수 있어야합니다 : 구문 분석 "DBPATH"에 대한 설정

db.adminCommand('getCmdLineOpts') 

봐.

+0

그 결과는'/ usr/local/var/mongodb'입니다. 나는'rails c'가 빈 db에 연결 한 다음 다시 시작한 후 전체 db에 연결하는 이유를 알지 못합니다. 내 자동 시작 Mongo가 충돌 후'mongod '를 실행하는 것과 다를 수 있습니까? –

+1

옵션없이 mongod를 시작하면 데이터 디렉토리 (dbpath)가'/ data/db'라고 가정합니다. 해당 디렉토리가 없거나 쓰기 불가능한 경우, mongod는 오류 메시지를 표시하고 시작을 거부합니다. 적절한 읽기/쓰기 권한을 가진 데이터 디렉토리가 존재하는 한 mongod는 해당 디렉토리에서 데이터 파일을 생성하고 사용합니다. 데이터 디렉토리가 비어 있으면 새 설치에서 시작하는 것과 사실상 동일합니다. 데이터 삽입을 시작할 때까지 데이터베이스/콜렉션이 존재하지 않습니다. – Stennie

+1

당신이 가지고있는 자동 시작 스크립트는'mongod --dbpath/usr/local/var/mongodb'을 실행하는 것과 같습니다. 명령 행에서 시작하는 옵션의 일관된 세트를 저장하려면, 설정 파일 (예 :'mongod --config/etc/mongodb.conf')에 지정할 수 있습니다. 옵션은 [파일 기반 구성] (http://www.mongodb.org/display/DOCS/File+Based+Configuration)에 문서화되어 있습니다. – Stennie

관련 문제