web-dev-qa-db-ja.com

pythonを使用してAWS RDS Postgresデータベースに接続します

データベース名が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

何が欠けていますか?

4
Roman

ジョン・ロテンシュタインのコメントありがとうございます。

彼が指摘したように、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'
)
6
Roman