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?
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'
)