Pymongo一直拒绝在27017的连接
我正在尝试用pymongo建立一个简单的连接,但总是提示连接被拒绝。
这是我尝试过的:
>>>from pymongo import Connection
>>>connection = Connection('localhost',27017)
这是我得到的结果:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux i686.egg/pymongo/connection.py", line 348, in __init__
self.__find_node()
File "/usr/local/lib/python2.7/dist-packages/pymongo-2.0.1_-py2.7-linux- i686.egg/pymongo/connection.py", line 627, in __find_node
raise AutoReconnect(', '.join(errors))
pymongo.errors.AutoReconnect: could not connect to localhost:27017: [Errno 111] Connection refused
我该怎么解决这个问题呢?
12 个回答
14
只需按照以下顺序尝试这些命令:
sudo rm /var/lib/mongodb/mongod.lock
sudo mongod --repair
sudo service mongodb start
sudo service mongodb status
就这样,现在你可以看到最后一个命令的输出结果是:
mongodb 正在启动/运行,进程号 2796
17
如果你看到这个页面,是因为你在使用Docker,并且遇到了连接问题,试着在你的客户端初始化时使用MongoDB的Docker容器名称,而不是用localhost:27017
或0.0.0.0:27017
解决步骤:
- 在控制台输入
docker ps
- 找到容器的名称(它在命令输出的最后一列,叫做
NAMES
) - 使用
MongoClient('mongodb://容器名称')
搞定。
57
要删除 mongod.lock
文件,你需要去 /var/lib/mongodb
这个文件夹里。
sudo rm /var/lib/mongodb/mongod.lock
然后重启服务就可以了。比如在我的Ubuntu系统中,重启服务器的命令大概是这样的:
sudo service mongodb start