无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例

Posted

技术标签:

【中文标题】无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例【英文标题】:Unable to connect to AWS MySQL RDS instance via Flask SQLAlchemy URI from Python Elastic Beanstalk 【发布时间】:2014-07-26 20:26:28 【问题描述】:

我遇到了一个问题,我无法从我的 Flask 应用程序连接到我的 RDS mysql 实例。我正在使用 SQLAlchemy,一切都在本地运行,但是当我将代码推送到 AWS 时,出现以下错误:

sqlalchemy.exc.OperationalError

OperationalError: (OperationalError) (1045, "Access denied for user 'db_user'@'xx.xx.xx.xxx' (using password: YES)") None None

现在我知道该错误不是安全组问题,因为我可以使用 MySQL 客户端在本地和实例上进行连接。

【问题讨论】:

【参考方案1】:

事实证明我没有做错任何事情,这不是 AWS 或 Flask 的错误,它严格来说是一个 SQLAlchemy 错误!原来 MySQL 连接的 URI 格式是:

dialect+driver://username:password@host:port/database

我的错误来自这样一个事实,即我的密码中带有一个加号 (+) 字符,从而欺骗了 URI 格式,使其在成为方言之前考虑所有内容。对于 MySQL 密码,使用“+”字符是完全合法的,因此通过 MySQL 客户端连接是有效的。我希望有此错误的其他人能够找到此错误,而不是像我试图找到解决方案那样花费大量时间!

【讨论】:

以上是关于无法通过 Python Elastic Beanstalk 中的 Flask SQLAlchemy URI 连接到 AWS MySQL RDS 实例的主要内容,如果未能解决你的问题,请参考以下文章

AWS Elastic Beanstalk Python Django S3 Access Denied 无法上传/读取文件

无法通过 Eclipse 部署到 Elastic Beanstalk

运行 Python Flask 应用程序的 Elastic Beanstalk (AWS) 的 HTTPS。无法获取要解析的 URL

启动 Ruby on Rails 应用程序时无法通过 AWS Elastic Beanstalk“恭喜”屏幕

无法连接到使用 Elastic Beanstalk 创建的 RDS 实例

如何通过 virtualenv 在 Amazon 的 Elastic Beanstalk 上使用最新版本的 python (3.6)