web-dev-qa-db-fra.com

Connectez-vous à la base de données AWS RDS Postgres avec python

J'ai une table postgres existante dans RDS avec un nom de base de données my-rds-table-name

Je me suis connecté avec pgAdmin4 avec les configurations suivantes d'un utilisateur en lecture seule:

Host_name = "my-rds-table-name.123456.us-east-1.rds.amazonaws.com"
user_name = "my_user_name"
password = "abc123def345"

J'ai vérifié que je peux interroger la table.

Cependant, je ne peux pas me connecter avec Python:

SQLAlchemy==1.2.16
psycopg2-binary==2.7.6.1
mysqlclient==1.4.1

Avec:

import psycopg2
engine = psycopg2.connect(
    database="my-rds-table-name",
    user="my_user_name",
    password="abc123def345",
    Host="my-rds-table-name.123456.us-east-1.rds.amazonaws.com",
    port='5432'
)

Il échoue avec

psycopg2.OperationalError: FATAL:  database "my-rds-table-name" does not exist

De même, si j'essaye de me connecter avec sqlalchemy:

sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL:  database "my-rds-table-name" does not exist

Qu'est-ce que je rate?

4
Roman

Merci John Rotenstein pour votre commentaire.

Comme il l'a souligné, my-rds-table-name est le nom de l'instance de base de données, pas le nom de la base de données, le nom de base de données par défaut est postgres.

import psycopg2
engine = psycopg2.connect(
    database="postgres",
    user="my_user_name",
    password="abc123def345",
    Host="my-rds-table-name.123456.us-east-1.rds.amazonaws.com",
    port='5432'
)
6
Roman