mysql - 使用 Flask-SQLAlchemy 连接到 AWS RDS MySQL 数据库实例

标签 mysql amazon-rds flask-sqlalchemy

对于我的 Flask 应用程序,我想使用 Flask-SQLAlchemy 扩展连接到我在 AWS RDS 上创建的数据库实例。

当我尝试连接时,应用程序超时并且出现以下错误:

sqlalchemy.exc.OperationalError: (OperationalError) (2003, "Can't connect to MySQL server on 'xxxxxxxxxxxxxxx.xxxxxxxxxxxx.us-east-1.rds.amazonaws.com'(60")

我的代码如下所示:

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 documentation表示用于 mysql 数据库连接的 SQLALCHEMY_DATABASE_URI 的格式应如下所示:

mysql://username:password@server/db

此外,我可以检查 AWS RDS 控制台以获取有关我的数据库实例的信息。控制台看起来像 this .

现在我假设 SQLAlchemy中的“用户名”是指AWS RDS控制台中的“主用户名”, SQLAlchemy 中的“服务器”是指 AWS RDS 控制台中的“端点”, 而“db”指的是“数据库实例名”

我做错了什么??

如果有人可以用 AWS RDS 控制台术语为我描述 SQLALCHEMY_DATABASE_URI,那将完全解决问题。

最佳答案

转到您的 AWS RDS 控制台并选择您的实例 -> 数据库安全组 -> 单击默认

并根据推荐的 IP 范围添加新的 CIDR。

这基本上是一个防火墙配置,它决定谁可以连接到数据库实例。

您可以将其设置为 0.0.0.0/0,这样防火墙就不会阻止您从任何主机/网络访问它。

关于mysql - 使用 Flask-SQLAlchemy 连接到 AWS RDS MySQL 数据库实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14850341/

相关文章:

java - Spring Boot 连接到 AWS RDS MySQL - SSLHandshakeException : Received fatal alert: unknown_ca

javascript - 是否可以为我的 sqlite 数据库生成一个随机且唯一的 5 位数 ID?

php - 如何使用我在android中的gps位置检索存储在mysql数据库中的最近位置

php - 我如何使用 PHP 将数组插入 mysql?

mysql - 我如何将另一个表与另一个表的主表连接起来

mysql - 如何将数据库从 Amazon RDS MySQL 实例导出到本地实例?

java - 请让我知道任何适用于 jdk 1.7 的 MySQL 版本

sql - 已授予 Postgres 角色但因关系错误而拒绝获得权限

python - python中flask和sqlalchemy的多对多

python - 修改 Flask-ReSTLess 结果数组