為什麼robomongo無法連接伺服器
❶ 為什麼連接不到本機的mongodn資料庫,總是報connect fail的錯
Mongoengine是一個可以操作MongoDB資料庫的對象-文檔映射器(Object-Document Mapper)。出於工作需要,最近在使用MongoDB+Django實現一個數據錄入系統小網站的過程中,出現通過Mongoengine無法從 python 調用 MongoDB,在connect()資料庫一步的時候出現下面錯誤:
>>> from mongoengine import connect
>>> connect(『healthmanager『)
Traceback (most recent call last):
File "<console>", line 1, in <mole>
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 164, in connect
return get_connection(alias)
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 126, in get_connection
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
False is not a read preference.
其原因在於,通過「pip install mongoengine」安裝的mongoengine為0.9.0版本,同時該命令把pymongo-3.0.2的模塊依賴也裝好了,而pymongo-3.0.2跟mongoengine-0.9.0之間存在兼容問題,從而導致默認的資料庫無法connect成功。
>>> import pymongo
>>> pymongo.version
『3.0.2『
另外,CentOS 6.5下用「pip install pymongo」安裝的pymongo為3.0.2版本,而mongoengine作為pymongo的一個擴展包,是沒有安裝的。因此在使用mongoengine的時候,安裝完mongoengine後,需要降低pymongo版本至3.0以下。、
解決方法:
=> pip install mongoengine # 安裝mongoengine
=> pip uninstall pymongo # 卸載pymongo-3.0.2
=> pip install pymongo==2.8 # 安裝pymongo-2.8
重新connect:
>>> from mongoengine import connect
>>> connect(『healthmanager『)
MongoClient(『localhost『, 27017)