pymongo "ServerSelectionTimeoutError: No servers found yet" 错误的解决
来源:互联网 发布:js怎么显示时间 编辑:程序博客网 时间:2024/06/05 10:53
系统转移过程中,擅自把aptitude安装的mongoengine换成了pip安装,系统启动以后,报这个错误
报错提示:
File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 748, in _socket_for_reads with self._get_socket(read_preference) as sock_info: File "/usr/lib/python2.7/contextlib.py", line 17, in __enter__ return self.gen.next() File "/usr/local/lib/python2.7/dist-packages/pymongo/mongo_client.py", line 712, in _get_socket server = self._get_topology().select_server(selector) File "/usr/local/lib/python2.7/dist-packages/pymongo/topology.py", line 141, in select_server address)) File "/usr/local/lib/python2.7/dist-packages/pymongo/topology.py", line 117, in select_servers self._error_message(selector))ServerSelectionTimeoutError: No servers found yet
因为是系统转移,刚开始是以为mongodb服务器那边服务的问题,后来上网查了一下,发现是pymongo的3.0.*以后版本接口向前兼容的一个bug,SoF某贴(地址见最后)提供了2个方案:
方案一,多传一个connect=False的参数:
MongoClient(uri, connect=False)
方案二、在初始化MongoClient实例之前,在子进程等几秒,代码如下:
def start(uri): time.sleep(2) mclient = MongoClient(uri) mclient.db.collection.find_one()if __name__ == '__main__': p = multiprocessing.Process(target=start, args=('mongodb://localhost:27017/',)) p.start()我的解决方案:虽然我用的不是上面任何方案的接口,我使用的是mongoengine的接口函数,底层任然是pymongo
from mongoengine import connect
按照方案一,在这个connect原调用位置的参数里面加了connect=False,问题解决。
第二个问题,使用新版本pymongo以后出现的问题,错误提示:
[Errno 104] Connection reset by peer
经SoF某贴,认为是mongodb的读写文件数超标了,其实我没在mongodb的log里面找到相应信息,只是当时的确做了大数据量的mongodb读写操作,于是按照帖子的要求添加/etc/security/limits.d/mongodb.conf 文件,文件内容:
mongodb hard nofile 99999mongodb soft nofile 99999mongodb hard nproc 99999mongodb soft nproc 99999
BugFix效果还待验证
参考:SoF某贴:http://stackoverflow.com/questions/30710427/pymongo-and-multiprocessing-serverselectiontimeouterror
0 0
- pymongo "ServerSelectionTimeoutError: No servers found yet" 错误的解决
- 解决ntp的错误 no server suitable for synchronization found
- 解决Eclipse3.4的No repository found错误
- 解决ntp的错误 no server suitable for synchronization found
- 解决Eclipse3.4的No repository found错误
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 解决ntp的错误 no server suitable for synchronization found
- 计算机网络原理笔记
- HDU acm step:Chapter one section two
- hdu 5167 Fibonacci【思维】【递归】
- 判断子树
- ip route
- pymongo "ServerSelectionTimeoutError: No servers found yet" 错误的解决
- sizeof与类的大小
- spring boot 异常处理
- iOS发布应用程序
- TestCase学习
- Objective-C Runtime学习笔记
- android取缩略图
- 1017. A除以B (20)
- Activity的启动模式和任务栈的概念