首页 > 解决方案 > 使用 python 连接到 AWS RDS Postgres 数据库

问题描述

我在 RDS 中有一个带有数据库名称的现有 postgres 表my-rds-table-name

我已经使用 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

我错过了什么?

标签: python-3.xpostgresqlamazon-web-servicesamazon-rds

解决方案


感谢 John Rotenstein 的评论。

正如他所指出的,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'
)

推荐阅读