2012-11-26 8 views
0

[해결] django tutorial을 성공적으로 완료 한 후 mongoDB를 Django MongoDB Engine과 함께 데이터베이스로 사용하려고했습니다. 이 settings.py의 데이터베이스 구성입니다 :Django MongoDB 엔진 연결 실패

DATABASES = { 
    'default': { 
     'ENGINE': 'django_mongodb_engine', 
     'NAME': 'test',        
     'HOST': 'localhost',    
     'PORT': 27017,     
#  'OPTIONS' : { 
#   'slave_okay' : True, 
#  } 
    } 
} 

그리고이 python manage.py syncdb 실행 한 후, 내가 오류 메시지입니다 :

raise AutoReconnect("could not find master/primary") 
pymongo.errors.AutoReconnect: could not find master/primary 

I,이 오류를 가지고도 MongoDB의 서버를 종료 한 후, 그래서 나는 이것이 연결 문제가 될 필요가 있다고 알았다. 어떻게 해결했는지에 대한 답을 올렸습니다. 우분투 12.04 LTS x64의 사용


, 파이썬 2.7, 장고 1.4.2, MongoDB를의 x86_64의 2.2.1 (깨끗한 새 설치)

+0

복제 세트를 설정 했습니까? 단일 서버 'slave_okay'옵션에 대해서만 연결하면 아무런 의미가 없습니다 ... –

+0

제가 언급했듯이, 나는 복제 세트를 사용하지 않습니다. 처음에는 OPTIONS 항목을 사용하지 않았지만 오류는 완전히 동일했습니다. 내가 도움이 될지도 모른다고 생각했기 때문에 덧붙였다. 그것의 유무에 관계없이 동일한 오류가 발생합니다. – DrKaoliN

+0

잘못된 ns는 연결된 데이터베이스에 사용자 모음이 없음을 의미합니다. 데이터베이스가 손상되지 않았습니다. 예상대로 적절한 콜렉션/스키마가 포함되어 있지 않습니다. –

답변

3

나는이 첫번째 장소에있는 질문에 대한 나 자신 거의 부끄럽다 너무 간단하지만, 나는 그것이 도움이 될 것입니다 희망 해결 방법 :

단순히 터미널에 입력하여 Django MongoDB Engine 업그레이드 :

sudo pip install git+https://github.com/django-nonrel/mongodb-engine --upgrade 

그리고 그게 전부입니다.

0

실행 시도 할 수 있습니다 ...

db.repairDatabase() 

몽고 터미널에서?

+0

그것과'mongod --repair'를 시작하는 것이 도움이되지 않았습니다. – DrKaoliN

+0

'db.repairDatabase()'는'{ "ok": 1}'을 재연합니다. 그러나 그 후에'db.users.validate()'는 같은'' "errmsg": "ns not found", "ok": 0, "valid": false}'를 반환하고 여전히 데이터베이스에 연결할 수 없습니다 장고와. – DrKaoliN