Pour mon application Flask, je souhaite utiliser l'extension Flask-SQLAlchemy pour me connecter à une instance de base de données que j'ai créée sur AWS RDS.Connexion à l'instance de base de données AWS RDS MySQL avec Flask-SQLAlchemy
Quand je tente de me connecter, les temps d'application dehors et je reçois l'erreur suivante:
sqlalchemy.exc.OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'(60")
Mon code ressemble à ceci:
from flask import Flask
from flask.ext.sqlalchemy import SQLAlchemy
application = Flask(__name__)
application.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://{master username}:{db password}@{endpoint}/{db instance name}'
db = SQLAlchemy(application)
@application.route('/')
def hello_world():
return 'Hello World'
if __name__ == '__main__':
application.run()
Le Flask-SQLAlchemy documentation dit que le format de la SQLALCHEMY_DATABASE_URI pour les connexions de base de données mysql devrait ressembler à ceci:
mysql://username:[email protected]/db
En outre, je peux vérifier la console AWS RDS pour plus d'informations sur mon instance de base de données. La console ressemble à this.
En ce moment, je suppose que « nom d'utilisateur » dans SQLAlchemy fait référence au « Maître Nom d'utilisateur » dans la console AWS RDS, « serveur » dans SQLAlchemy fait référence au « point limite » dans la console AWS RDS, et " db "fait référence au" nom d'instance de base de données "
Qu'est-ce que je fais de mal ??
Si quelqu'un pouvait décrire le SQLALCHEMY_DATABASE_URI avec les termes de la console AWS RDS, cela résoudrait complètement le problème.
Cette réponse n'est pas très valide maintenant puisque l'interface dans AWS a changé :( – sbose