是"数据库URL"和"数据库实例"相同的身份证?

时间:2017-08-24 21:24:30

标签: amazon-web-services amazon-rds

在关注部署简单的Flask应用程序到AWS RDS和ElasticBeanstalk的this教程时,我遇到了错误

sqlalchemy.exc.OperationalError: (OperationalError)
(2003, 'Can\'t connect to MySQL server on
\'flasktest.kedfifydb8esbdk.us-east-1.rds.amazonaws.com\'
((1049, u"Unknown database \'flaskdemo\'"))') None None

python db_create.py

声明

SQLALCHEMY_DATABASE_URI = ‘mysql+pymysql://<db_user>:<db_password>@<endpoint>/<db_url>’

什么是<db_url>?是不是RDS管理控制台上为数据库实例选择的名称?

RDS management console

如果像我预期的那样,那么我还有什么可能会遗漏?

更新征求意见

整个过程最终令人沮丧。 &#34;按下此按钮&#34;,&#34;单击此处&#34;,然后执行此操作,这些都非常容易出错并且不会吸引程序员。我现在正在寻找一种编写所有部署步骤的方法。然后该过程变得可重复且可靠。也就是说,从GUI中获取一次的经验有助于确定最小的工作设置。续集练习是将本教程转换为脚本。欢迎评论。

2 个答案:

答案 0 :(得分:1)

我相信它将是实例中数据库的名称,或者特别是DB Name属性。数据库实例的名称是RDS实例本身的名称,而不是RDS实例承载的实际数据库。

如果您能找到它,请告诉我......它应该位于“创建时间”和“用户名”之下。如果没有,我可以看看是否可以包含我的一个RDS实例的屏幕。

答案 1 :(得分:0)

我有同样的错误。确保正确写下URI字符串中的参数。看起来Flash演示数据库不存在!。

SQLALCHEMY_DATABASE_URI = 'mysql+pymysql://yourusername:dbpassword@endpointhere/dbname'

在数据库控制台的“摘要”下列出的“数据库名称”参数不是您在URI字符串中的数据库名称!最坏的情况是创建另一个数据库并写下您的参数。创建数据库时,应在“数据库选项”中获取数据库名称。

此外,请确保您的数据库使用的是正确的安全组。应该从数据库中删除“默认”安全组,并且新的安全组必须允许访问数据库。

安全-安全组

Security Group Here