データベース名がmy-rds-table-name
のRDSに既存のpostgresテーブルがあります
私はpgAdmin4を使用して、次の読み取り専用ユーザーの構成で接続しました。
Host_name = "my-rds-table-name.123456.us-east-1.rds.amazonaws.com"
user_name = "my_user_name"
password = "abc123def345"
テーブルに対してクエリを実行できることを確認しました。
ただし、Pythonを使用して接続することはできません。
SQLAlchemy==1.2.16
psycopg2-binary==2.7.6.1
mysqlclient==1.4.1
と:
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'
)
それは失敗します
psycopg2.OperationalError: FATAL: database "my-rds-table-name" does not exist
同様に、sqlalchemyで接続しようとすると、次のようになります。
sqlalchemy.exc.OperationalError: (psycopg2.OperationalError) FATAL: database "my-rds-table-name" does not exist
何が欠けていますか?
ジョン・ロテンシュタインのコメントありがとうございます。
彼が指摘したように、my-rds-table-name
はデータベースインスタンス名であり、データベース名ではありません。デフォルトのデータベース名は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'
)