ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused

原码

import pymongo
import datetime

client=pymongo.MongoClient()  #建立连接
db=client.papers  #获取数据库
collection=db.books  # 获取集合
#插入文档
book={
        "author":"Mike",
        "text":"My first book!",
        "tags":["爬虫","Python","网络"],
        "date":datetime.datetime.utcnow()
}
book_id=collection.insert(book)

报错

---------------------------------------------------------------------------
ServerSelectionTimeoutError               Traceback (most recent call last)
<ipython-input-15-92caf37e51af> in <module>()
      6         "date":datetime.datetime.utcnow()
      7 }
----> 8 book_id=collection.insert(book)

~/anaconda3/lib/python3.6/site-packages/pymongo/collection.py in insert(self, doc_or_docs, manipulate, check_keys, continue_on_error, **kwargs)
   2939             write_concern = WriteConcern(**kwargs)
   2940         return self._insert(doc_or_docs, not continue_on_error,
-> 2941                             check_keys, manipulate, write_concern)
   2942 
   2943     def update(self, spec, document, upsert=False, manipulate=False,

~/anaconda3/lib/python3.6/site-packages/pymongo/collection.py in _insert(self, docs, ordered, check_keys, manipulate, write_concern, op_id, bypass_doc_val, session)
    597             return self._insert_one(
    598                 docs, ordered, check_keys, manipulate, write_concern, op_id,
--> 599                 bypass_doc_val, session)
    600 
    601         ids = []

~/anaconda3/lib/python3.6/site-packages/pymongo/collection.py in _insert_one(self, doc, ordered, check_keys, manipulate, write_concern, op_id, bypass_doc_val, session)
    577 
    578             result = self.__database.client._retryable_write(
--> 579                 True, _insert_command, session)
    580             _check_write_command_response(result)
    581         else:

~/anaconda3/lib/python3.6/site-packages/pymongo/mongo_client.py in _retryable_write(self, retryable, func, session)
   1099     def _retryable_write(self, retryable, func, session):
   1100         """Internal retryable write helper."""
-> 1101         with self._tmp_session(session) as s:
   1102             return self._retry_with_session(retryable, func, s, None)
   1103 

~/anaconda3/lib/python3.6/contextlib.py in __enter__(self)
     79     def __enter__(self):
     80         try:
---> 81             return next(self.gen)
     82         except StopIteration:
     83             raise RuntimeError("generator didn't yield") from None

~/anaconda3/lib/python3.6/site-packages/pymongo/mongo_client.py in _tmp_session(self, session, close)
   1405             return
   1406 
-> 1407         s = self._ensure_session(session)
   1408         if s and close:
   1409             with s:

~/anaconda3/lib/python3.6/site-packages/pymongo/mongo_client.py in _ensure_session(self, session)
   1392             # Don't make implied sessions causally consistent. Applications
   1393             # should always opt-in.
-> 1394             return self.start_session(causal_consistency=False)
   1395         except (ConfigurationError, InvalidOperation):
   1396             # Sessions not supported, or multiple users authenticated.

~/anaconda3/lib/python3.6/site-packages/pymongo/mongo_client.py in start_session(self, causal_consistency)
   1370 
   1371         # Raises ConfigurationError if sessions are not supported.
-> 1372         server_session = self._get_server_session()
   1373         opts = client_session.SessionOptions(
   1374             causal_consistency=causal_consistency)

~/anaconda3/lib/python3.6/site-packages/pymongo/mongo_client.py in _get_server_session(self)
   1378     def _get_server_session(self):
   1379         """Internal: start or resume a _ServerSession."""
-> 1380         return self._topology.get_server_session()
   1381 
   1382     def _return_server_session(self, server_session, lock):

~/anaconda3/lib/python3.6/site-packages/pymongo/topology.py in get_server_session(self)
    425                             any_server_selector,
    426                             self._settings.server_selection_timeout,
--> 427                             None)
    428                 elif not self._description.readable_servers:
    429                     self._select_servers_loop(

~/anaconda3/lib/python3.6/site-packages/pymongo/topology.py in _select_servers_loop(self, selector, timeout, address)
    197             if timeout == 0 or now > end_time:
    198                 raise ServerSelectionTimeoutError(
--> 199                     self._error_message(selector))
    200 
    201             self._ensure_opened()

ServerSelectionTimeoutError: localhost:27017: [Errno 111] Connection refused

解决
终端下运行以下代码即可

systemctl start mongodb.service

猜你喜欢

转载自blog.csdn.net/weixin_39777626/article/details/81567100