25

私の 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 を説明できれば、問題は完全に解決します。

4

4 に答える 4