Python 3.x ServerSelectionTimeoutError:basicdatabase-w4eg3.mongodb.net:27017:[Errno 11001]getaddrinfo失败
我不明白为什么在将代码连接到MongoDB数据库时,我的代码中会出现此错误。这是我的密码:-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) 这是我单独制作的凭证文件,
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按钮刷新