Calaf
Calaf

Reputation: 10847

Are "Database URL" and "Database Instance" the same id?

While following this tutorial for deploying a simple Flask app to AWS RDS and ElasticBeanstalk, I am running into the error

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

at python db_create.py.

In the statement

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

what is <db_url>? Is it not precisely the name chosen for DB Instance at the RDS management console?

RDS management console

If, as I expect, that's the case, what else might I be missing?

Update soliciting comments

The entire process is ultimately frustrating. "Push this button", "click here", then do this and that, are all far too error prone and do not appeal to programmers. I'm now looking for a way to script all the deployment steps. And then the process becomes reproducible and reliable. That said, the experience of getting it right once from the GUI helps to identify a minimal working setup. A sequel exercise is to convert this tutorial to a script. Comments welcome.

Upvotes: 1

Views: 607

Answers (2)

JoeC128
JoeC128

Reputation: 1

I had the same error. Make sure you are correctly writing down the parameters in the URI string. Looks like the flash demo database does not exist!.

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

The 'DB Name' parameter listed under the Summary in the Database console IS NOT your dbname in the URI string!. The worst case creates another database and writes down your parameters. You should get the DB name in the 'Database options' while creating the database.

Also, make sure that your database is using a correct security group. The 'default' security group should be removed from the database and your new security group must allow access to your database.

Security - Security Groups

Security Group Here

Upvotes: 0

purdoo
purdoo

Reputation: 1032

I believe it would be the name of your DB within the instance, or specifically, the DB Name attribute. The name of the DB instance is the name of the RDS instance itself, and not the actual database that the RDS instance is hosting.

Let me know if you can find it...it should be under Created Time and above Username. If not, I can see if I can include a screen of one of my RDS instances.

Upvotes: 1

Related Questions