有pymongo 3.0的问题(ServerSelectionTimeoutError)

时间:2015-04-19 08:38:06

标签: mongodb pymongo

我在PyMongo 3.0中遇到以下问题。有没有人知道如何解决这个问题?

from pymongo import MongoClient

# making a Connection with MongoClient
client = MongoClient()
# getting a Database
db = client.test_database
# getting a Collection
test = db['test-collection']
client['test-collection']
print client('test-collection')
---Database(MongoClient('localhost', 27017), u'test-collection')
# inserting a document
test.insert_one({"test": True})

这是错误:

  File "/usr/local/lib/python2.7/dist-packages/pymongo/topology.py", line 113, in select_server
  server_selection_timeout))
  File "/usr/local/lib/python2.7/dist-packages/pymongo/topology.py", line 93, in select_servers
  self._error_message(selector))
  pymongo.errors.ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused

修改1:

当我尝试执行MongoDB交互式shell时,我得到了同样的错误:

# making a Connection with MongoClient
client = MongoClient()
client.database_names()

解决:

我在/ var / log / mongodb中发现了以下错误:

[initandlisten] exception in initAndListen: 15926 Insufficient free space for journals, terminating

我的VM中似乎没有足够的可用磁盘,所以我的mongodb并没有在我的机器上运行。

我终于在以下文章中找到了解决此问题的方法:Why getting error mongod dead but subsys locked and Insufficient free space for journal files on Linux?

似乎可以使用mongodb日志文件中的smallfiles属性解决问题。

1 个答案:

答案 0 :(得分:0)

我相信您遇到此错误是因为您没有在端口27017上运行mongo db。看起来PyMongo只尝试使用insert命令连接到服务器。

验证Mongodb服务器是否在端口27017中的localhost上运行,或者向MongoClient构造函数传递正确的地址,如果不同的localhost 27017