Python 3.x ServerSelectionTimeoutError:basicdatabase-w4eg3.mongodb.net:27017:[Errno 11001]getaddrinfo失败

Python 3.x ServerSelectionTimeoutError:basicdatabase-w4eg3.mongodb.net:27017:[Errno 11001]getaddrinfo失败,python-3.x,mongodb,mongodb-query,anaconda,spring-data-mongodb,Python 3.x,Mongodb,Mongodb Query,Anaconda,Spring Data Mongodb,我不明白为什么在将代码连接到MongoDB数据库时,我的代码中会出现此错误。这是我的密码:- import Credentials client = Credentials.client db = client.VisitorBook company = input('Enter Company Name: ') result=db.Company_name.insert_one({'Name':company}) print(result.inserted_id) 这是我单独制作的凭证文件,

我不明白为什么在将代码连接到MongoDB数据库时,我的代码中会出现此错误。这是我的密码:-

import Credentials
client = Credentials.client
db = client.VisitorBook
company = input('Enter Company Name: ')
result=db.Company_name.insert_one({'Name':company})
print(result.inserted_id)
这是我单独制作的凭证文件,在上面的代码中调用此凭证模块:

from pymongo import MongoClient
from bson.objectid import ObjectId
client = MongoClient('mongodb+srv://Username:<Password>@basicdatabase-w4eg3.mongodb.net/test?retryWrites=true');
从pymongo导入MongoClient
从bson.objectid导入objectid
client=MongoClient('mongodb+srv://Username:@basicdatabase-w4eg3.mongodb.net/test?retryWrites=true');
在执行代码时输入用户名和密码后,会显示以下错误:

---------------------------------------------------------------------------
ServerSelectionTimeoutError               Traceback (most recent call last)
<ipython-input-10-754b7e794657> in <module>()
      5 
      6 company = input('Enter Company Name: ')
----> 7 result=db.Company_name.insert_one({'Name':company})
      8 print(result.inserted_id)

C:\ProgramData\Anaconda3\lib\site-packages\pymongo\collection.py in insert_one(self, document, bypass_document_validation, session)
    681             self._insert(document,
    682                          bypass_doc_val=bypass_document_validation,
--> 683                          session=session),
    684             self.write_concern.acknowledged)
    685 

C:\ProgramData\Anaconda3\lib\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 = []

C:\ProgramData\Anaconda3\lib\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:

C:\ProgramData\Anaconda3\lib\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 

C:\ProgramData\Anaconda3\lib\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

C:\ProgramData\Anaconda3\lib\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:

C:\ProgramData\Anaconda3\lib\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.

C:\ProgramData\Anaconda3\lib\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)

C:\ProgramData\Anaconda3\lib\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):

C:\ProgramData\Anaconda3\lib\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(

C:\ProgramData\Anaconda3\lib\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: basicdatabase-w4eg3.mongodb.net:27017: [Errno 11001] getaddrinfo failed
---------------------------------------------------------------------------
ServerSelectionTimeoutError回溯(最近一次呼叫上次)
在()
5.
6公司=输入('输入公司名称:')
---->7 result=db.Company\u name.insert\u one({'name':Company})
8打印(结果。插入的\u id)
C:\ProgramData\Anaconda3\lib\site packages\pymongo\collection.py在insert\u one中(self、document、bypass\u document\u validation、session)
681自行插入(文件、,
682绕过文档=绕过文档验证,
-->683会话=会话),
684自述(已确认)
685
C:\ProgramData\Anaconda3\lib\site packages\pymongo\collection.py in\u insert(self、docs、ordered、check\u key、操纵、写入关注点、操作id、绕过文档val、会话)
597返回自我。插入一个(
598份文件,订购,检查密钥,操纵,写入问题,操作id,
-->599旁路(文档,会话)
600
601 id=[]
C:\ProgramData\Anaconda3\lib\site packages\pymongo\collection.py in\u insert\u one(self、doc、ordered、check\u key、操纵、写入关注点、op\u id、绕过文档、会话)
577
578 result=self.\uuuu database.client.\u retryable\u write(
-->579正确,插入命令,会话)
580检查写入命令响应(结果)
581其他:
C:\ProgramData\Anaconda3\lib\site packages\pymongo\mongo\u client.py in\u retryable\u write(self、retryable、func、session)
1099定义可重试写入(自、可重试、函数、会话):
1100“内部可检索写帮助程序”
->1101,将self.\u tmp\u会话(session)作为s:
1102返回自我。使用会话重试(可重试、函数、s、无)
1103
C:\ProgramData\Anaconda3\lib\contextlib.py in\uuuuu enter\uuuuu(self)
79定义输入(自我):
80尝试:
--->81返回下一个(self.gen)
82除停止迭代外:
83从“无”引发运行时错误(“生成器未屈服”)
C:\ProgramData\Anaconda3\lib\site packages\pymongo\mongo\u client.py in\u tmp\u会话(self、session、close)
1405返回
1406
->1407 s=自我确保会话(会话)
1408如果s和关闭:
1409与s:
C:\ProgramData\Anaconda3\lib\site packages\pymongo\mongo\u client.py in\u sure\u session(self,session)
1392#不要使隐含会话因果一致。应用
1393应始终选择加入。
->1394返回自启动会话(因果一致性=False)
1395除外(配置错误,无效操作):
1396#不支持会话,或多个用户经过身份验证。
C:\ProgramData\Anaconda3\lib\site packages\pymongo\mongo\u client.py在启动会话中(self,因果一致性)
1370
1371#如果不支持会话,则引发配置错误。
->1372服务器会话=self.\u获取服务器会话()
1373 opts=客户端会话。会话选项(
1374因果一致性=因果一致性)
C:\ProgramData\Anaconda3\lib\site packages\pymongo\mongo\u client.py in\u get\u server\u会话(self)
1378 def获取服务器会话(自):
1379“内部:启动或恢复服务器会话”
->1380返回self.\u拓扑。获取\u服务器\u会话()
1381
1382 def_返回_服务器_会话(self、server_会话、lock):
获取服务器会话(self)中的C:\ProgramData\Anaconda3\lib\site packages\pymongo\topology.py
425任何_服务器_选择器,
426自我设置。服务器选择超时,
-->427(无)
428 elif非自描述性可读服务器:
429自我选择\u服务器\u循环(
C:\ProgramData\Anaconda3\lib\site packages\pymongo\topology.py in\u select\u servers\u循环(self、selector、timeout、address)
197如果超时==0或现在>结束时间:
198提升服务器选择超时错误(
-->199自我错误信息(选择器))
200
201自我确保已打开()
ServerSelectionTimeoutError:basicdatabase-w4eg3.mongodb.net:27017:[Errno 11001]getaddrinfo失败

嗨,像这样更改此代码部分

import Credentials

client = Credentials.client

db = client['VisitorBook']
collection = db['Company_name']

company = input('Enter Company Name: ')
result = collection.insert_one({'Name':company})
print(result.inserted_id)
或者尝试手动运行mongod.exe。有时您会看到mongod.exe控制台卡住,在这种情况下,请点击mongod控制台内的enter按钮刷新