我在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属性解决问题。
答案 0 :(得分:0)
我相信您遇到此错误是因为您没有在端口27017上运行mongo db。看起来PyMongo只尝试使用insert命令连接到服务器。
验证Mongodb服务器是否在端口27017中的localhost上运行,或者向MongoClient构造函数传递正确的地址,如果不同的localhost 27017