【问题标题】:Accessing data from mongoDB DNS erros从 mongoDB DNS 错误中访问数据
【发布时间】:2021-04-27 14:35:06
【问题描述】:
import pymongo 
from pymongo import MongoClient
cluster = MongoClient("mongodb+srv://user1:user11@cluster0.zwa0u.mongodb.net/test?retryWrites=true&w=majority")
db = cluster["test"]
collection = db["test"]
post = {"_id" : 0, "name" : "Jon", "score" : 5}
collection.insert_one(post)

在运行此代码时,我遇到了 DNS 错误等等。但是数据不会上传到数据库中。 当我运行上面的代码时会发生以下错误

> Traceback (most recent call last):   File
> "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\srv_resolver.py",
> line 72, in _resolve_uri
>     results = resolver.query('_mongodb._tcp.' + self.__fqdn, 'SRV',   File
> "C:\CompanyWork\ProgramsPython-2\lib\site-packages\dns\resolver.py",
> line 1321, in query
>     return resolve(qname, rdtype, rdclass, tcp, source,   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\dns\resolver.py",
> line 1305, in resolve
>     return get_default_resolver().resolve(qname, rdtype, rdclass, tcp, source,   File
> "C:\CompanyWork\ProgramsPython-2\lib\site-packages\dns\resolver.py",
> line 1176, in resolve
>     timeout = self._compute_timeout(start, lifetime)   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\dns\resolver.py",
> line 997, in _compute_timeout
>     raise Timeout(timeout=duration) dns.exception.Timeout: The DNS operation timed out after 21.213911056518555 seconds
> 
> During handling of the above exception, another exception occurred:
> 
> Traceback (most recent call last):   File
> "C:\CompanyWork\ProgramsPython-2\mongodbAccess.py", line 23, in
> <module>
>     cluster = MongoClient("mongodb+srv://user1:user11@cluster0.zwa0u.mongodb.net/test?retryWrites=true&w=majority")
> File
> "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\mongo_client.py",
> line 639, in __init__
>     res = uri_parser.parse_uri(   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\uri_parser.py",
> line 500, in parse_uri
>     nodes = dns_resolver.get_hosts()   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\srv_resolver.py",
> line 102, in get_hosts
>     _, nodes = self._get_srv_response_and_hosts(True)   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\srv_resolver.py",
> line 83, in _get_srv_response_and_hosts
>     results = self._resolve_uri(encapsulate_errors)   File "C:\CompanyWork\ProgramsPython-2\lib\site-packages\pymongo\srv_resolver.py",
> line 79, in _resolve_uri
>     raise ConfigurationError(str(exc)) pymongo.errors.ConfigurationError: The DNS operation timed out after
> 21.213911056518555 seconds

【问题讨论】:

    标签: python database mongodb mongodb-query pymongo


    【解决方案1】:

    连接字符串cluster0.zwa0u.mongodb.net 中的URL 无法使用DNS 解析;您需要更正网址。

    $ dig zwa0u.mongodb.net
    
    ; <<>> DiG 9.16.1-Ubuntu <<>> zwa0u.mongodb.net
    ;; global options: +cmd
    ;; Got answer:
    ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 46955
    ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1
    
    ;; OPT PSEUDOSECTION:
    ; EDNS: version: 0, flags:; udp: 512
    ;; QUESTION SECTION:
    ;zwa0u.mongodb.net.             IN      A
    
    ;; AUTHORITY SECTION:
    mongodb.net.            49      IN      SOA     ns-761.awsdns-31.net. awsdns-hostmaster.amazon.com. 1 7200 900 1209600 60
    
    ;; Query time: 40 msec
    ;; SERVER: 192.168.176.1#53(192.168.176.1)
    ;; WHEN: Tue Apr 27 17:36:14 BST 2021
    ;; MSG SIZE  rcvd: 127
    

    【讨论】:

      猜你喜欢
      • 2015-10-16
      • 1970-01-01
      • 1970-01-01
      • 2019-10-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多