私の Flask アプリでは、Flask-SQLAlchemy 拡張機能を使用して、AWS RDS で作成したデータベース インスタンスに接続したいと考えています。
接続しようとすると、アプリケーションがタイムアウトし、次のエラーが表示されます。
sqlalchemy.exc.OperationalError: (OperationalError) (2003、「'xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'(60") の MySQL サーバーに接続できません)
私のコードは次のようになります:
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()
Flask-SQLAlchemyのドキュメントによると、mysql データベース接続の SQLALCHEMY_DATABASE_URI の形式は次のようになります。
mysql://username:password@server/db
さらに、AWS RDS コンソールでデータベース インスタンスに関する情報を確認できます。コンソールは次のようになります。
今のところ、SQLAlchemy の「ユーザー名」は AWS RDS コンソールの「マスター ユーザー名」を指し、SQLAlchemy の「サーバー」は AWS RDS コンソールの「エンドポイント」を指し、「db」は「データベース」を指すと想定しています。インスタンス名」
私は何を間違っていますか??
誰かが AWS RDS コンソールの用語を使用して SQLALCHEMY_DATABASE_URI を説明できれば、問題は完全に解決します。