estoy conectando mi aplicación Flask a mongodb atlas usando Flask-PyMongo, pero recibo este error.
"dns.exception.Timeout: la operación de DNS superó el tiempo de espera después de 30.000985383987427 segundos"
y luego dice: Durante el manejo de la excepción anterior, ocurrió otra excepción:
"pymongo.errors.ConfigurationError: la operación de DNS se agotó después de 30.000985383987427 segundos"
Aquí está el código:
from flask import Flask from flask_pymongo import PyMongo app = Flask(__name__) app.config['MONGO_DBNAME'] = 'FirstCluster' app.config['MONGO_URI'] = 'mongodb+srv://username:password@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)Tuve el mismo problema, funcionó para mí al cambiar mi dns de forma automática a "8.8.8.8". ¿Cómo? Si está en Windows, haga lo siguiente
También como dijo Neil Lunn, verifique las ips permitidas
Parece que tiene que instalar pymongo[srv] para que mongodb+srv URI funcione.
Intenta instalarlo con pip3 install 'pymongo[srv]'
Intente usar una cadena de conexión diferente. Estaba teniendo problemas con la cadena 3.6 o posterior. Simplemente usó la cadena 3.4 o posterior y se conectó al instante.
si insiste en usar una cadena de conexión más nueva, debe instalar pymongo srv
Para ventanas
pip install pymongo[srv]Para Mac
pip3 install pymongo[srv]en zsh
pip3 install 'pymongo[srv]'Puede ser un error causado porque su Mongo Client no puede encontrar la conexión con el servidor. Entonces, mejor verifique su conectividad a Internet y luego ejecute el programa
Mismo problema en el estándar de Google App Engine.
En mi caso, la solución fue usar un tipo de URL más antiguo:
client = pymongo.MongoClient("mongodb://USERNAME:PASSWORD@CLUSTER...SUDOESTE:
La conexión desde el archivo de prueba directamente desde el sistema operativo fue correcta, pero el mismo código se ejecutó desde Google SDK dev appserver2 falla.
Después de cambiar la URL generada por cloud.mongodb.com Atlas en la sección Clúster -> Conectar -> Elija un método de conexión -> Python: se estableció la conexión 3.4 o posterior.
Estaba usando python 3.6.2, así que elegí usar la cadena de conexión para "3.6 o posterior". Me dio este error. Más tarde lo probé con la cadena de conexión para "3.4 o posterior". Funcionó perfectamente bien.
Intente usar la cadena de conexión para "3.4 o posterior".
Tuve un problema similar. De repente no pude conectarme. Todos mis colegas estaban usando la misma versión de Python, etc.
Unos días antes, otro colega tuvo el tiempo de espera mientras usaba el wifi de su teléfono. Podían conectarse cuando cambiaban a su wifi normal.
Después de reiniciar mi wifi, pude conectarme.
No es una gran solución, pero vale la pena intentarlo.
Intente usar una versión diferente de la cadena de conexión. Puede cambiar la versión en el clúster -> conectar -> conectar su aplicación.