我正在使用Flask-PyMongo将我的Flask应用程序连接到mongodb地图集,但出现此错误。
“ dns.exception.Timeout:DNS操作在30.000985383987427秒后超时”
,然后说: 在处理上述异常期间,发生了另一个异常:
“ pymongo.errors.ConfigurationError:DNS操作在30.000985383987427秒后超时”
代码如下:
from flask import Flask
from flask_pymongo import PyMongo
app = Flask(__name__)
app.config['MONGO_DBNAME'] = 'FirstCluster'
app.config['MONGO_URI'] = 'mongodb+srv://vatsalay:7879229242@firstcluster-bblvc.mongodb.net/test?retryWrites=true'
mongo = PyMongo(app)
@app.route('/connect')
def connect_to_mongo():
return 'Connecting to Mongodb'
@app.route('/collections')
def adding():
user = mongo.db.users
user.insert({'name' : 'vatsalay'})
return 'Added User!'
if __name__ == '__main__':
app.run(debug=True)
答案 0 :(得分:4)
尝试使用其他连接字符串。我在使用3.6或更高版本的字符串时遇到问题,尝试更改DNS和所有内容。只需使用3.4或更高版本的字符串,即可立即连接。
答案 1 :(得分:0)
通过将我的dns从自动设置为8.8.8.8,对我也有同样的问题 怎么样? 如果您是Windows
也正如尼尔·伦恩(Neil Lunn)所说,检查允许的ips
答案 2 :(得分:0)
好像您必须安装pymongo [srv]才能使mongodb+srv
URI起作用。
尝试使用pip3 install 'pymongo[srv]'
答案 3 :(得分:0)
当您的Mongo Client无法找到与服务器的连接时,这可能是一个错误。因此,最好检查一下您的互联网连接,然后运行程序
答案 4 :(得分:0)
Google App Engine标准中的相同问题。
就我而言,是使用旧类型URL的解决方案:
client = pymongo.MongoClient("mongodb://USERNAME:PASSWORD@CLUSTER...
SW:
直接从os与测试文件建立连接是可以的,但是从Google SDK dev appserver2运行的相同代码失败。
更改后由cloud.mongodb.com Atlas生成的URL 在“群集”->“连接”->“选择连接方法”->“ Python”-3.4或更高版本中 连接已建立。
答案 5 :(得分:0)
我使用的是python 3.6.2,因此我选择将连接字符串用于“ 3.6或更高版本”。它给了我这个错误。后来我尝试使用“ 3.4或更高版本”的连接字符串进行尝试。效果很好。
尝试将连接字符串用于“ 3.4或更高版本”。
答案 6 :(得分:0)
答案 7 :(得分:-1)
我遇到了类似的问题。突然连接不上了我所有的同事都使用相同的python版本等。
几天前,另一位同事在使用手机 wifi 时超时。当他们切换到普通 wifi 时,他们可以连接。
重新启动 wifi 后,我就可以连接了。
这不是一个很好的解决方案,但值得一试。