连接到运行 PostgreSQL 数据库引擎的数据库实例 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

连接到运行 PostgreSQL 数据库引擎的数据库实例

在 Amazon RDS 预置数据库实例后,您可以使用任何标准 SQL 客户端应用程序连接到该实例。要列出 Amazon RDS 数据库实例的详细信息,可以使用 Amazon Web Services Management Console、Amazon CLI describe-db-instances 命令或 Amazon RDS API DescribeDBInstances 操作。您需要以下信息才能进行连接:

  • 数据库实例的主机或主机名称,例如:

    myinstance.123456789012.us-east-1.rds.amazonaws.com
  • 数据库实例侦听的端口。例如,默认 PostgreSQL 端口是 5432。

  • 数据库实例的用户名和密码。

下面是两种连接到 PostgreSQL 数据库实例的方法。第一个示例使用 pgAdmin,这是一个时下受欢迎的用于 PostgreSQL 的开源管理和开发工具。第二个示例使用 psql,这是一个命令行实用工具,包含在 PostgreSQL 安装中。

使用 pgAdmin 连接到 PostgreSQL 数据库实例

您可以使用开源工具 pgAdmin 连接到 PostgreSQL 数据库实例。

要使用 pgAdmin 连接到 PostgreSQL 数据库实例,请执行以下操作

  1. 找到您的数据库实例的终端节点 (DNS 名称) 和端口号。

    1. 打开 RDS 控制台,然后选择 Databases (数据库) 以显示数据库实例的列表。

    2. 选择 PostgreSQL 数据库实例名称以显示其详细信息。

    3. Connectivity & security (连接和安全性) 选项卡上,复制终端节点。另请注意端口号。您需要终端节点和端口号才能连接到数据库实例。

      
                                连接到 PostgreSQL 数据库实例
  2. http://www.pgadmin.org/ 安装 pgAdmin。客户端计算机上不必具有 PostgreSQL 的本地实例,即可下载和使用 pgAdmin。

  3. 在您的客户端计算机上启动 pgAdmin 应用程序。

  4. Dashboard (控制面板) 选项卡上,选择 Add New Server (添加新服务器)。

  5. Create - Server (创建 - 服务器) 对话框中,在 General (常规) 选项卡上键入名称以在 pgAdmin 中标识该服务器。

  6. Connection (连接) 选项卡上,键入您的数据库实例的以下信息:

    • 对于 Host (主机),键入终端节点,例如 mypostgresql.c6c8dntfzzhgv0.us-east-2.rds.amazonaws.com

    • 对于 Port (端口),键入分配的端口。

    • 对于 Username (用户名),键入您在创建数据库实例时输入的用户名。

    • 对于 Password (密码),键入您在创建数据库实例时输入的密码。

  7. 选择 Save (保存)

    如果您有任何连接问题,请参阅排除与您的 PostgreSQL 实例的连接故障

  8. 要在 pgAdmin 浏览器中访问数据库,请依次展开 Servers (服务器)、数据库实例和 Databases (数据库)。选择数据库实例的数据库名称。

  9. 要打开可在其中输入 SQL 命令的面板,请依次选择 Tools (工具) 和 Query Tool (查询工具)。

使用 psql 连接到 PostgreSQL 数据库实例

可使用 psql 命令行实用工具的本地实例连接到 PostgreSQL 数据库实例。需要在您的客户端计算机上安装 PostgreSQL 或 psql 客户端。要使用 psql 连接到 PostgreSQL 数据库实例,您需要提供主机信息和访问凭证。

使用以下格式之一连接到 Amazon RDS 上的 PostgreSQL 数据库实例。在连接时,系统将提示您输入密码。对于批处理作业或脚本,请使用 --no-password 选项。此选项面向整个会话设置。

注意

如果服务器需要进行密码身份验证,而密码不能从其他来源获取,--no-password 连接尝试则会失败。有关更多信息,请参阅 psql 文档

如果这是您第一次连接到此数据库实例,请尝试对 --dbname 选项使用默认数据库名称 postgres

对于 Unix,使用以下格式。

psql \ --host=<DB instance endpoint> \ --port=<port> \ --username=<master username> \ --password \ --dbname=<database name>

对于 Windows,使用以下格式。

psql ^ --host=<DB instance endpoint> ^ --port=<port> ^ --username=<master username> ^ --password ^ --dbname=<database name>

例如,以下命令使用虚构的凭证连接到名为 mypgdb 的 PostgreSQL 数据库实例上名为 mypostgresql 的数据库。

psql --host=mypostgresql.c6c8mwvfdgv0.us-west-2.rds.amazonaws.com --port=5432 --username=awsuser --password --dbname=mypgdb

排除与您的 PostgreSQL 实例的连接故障

错误 – FATAL:数据库名称不存在

如果在尝试连接时收到 FATAL: database name does not exist 之类的错误,请尝试对 --dbname 选项使用默认数据库名称 postgres

错误 – 无法连接到服务器:连接超时

如果无法连接到数据库实例,则最常见的错误是 Could not connect to server: Connection timed out.如果出现此错误,请检查以下内容:

  • 检查所使用的主机名是否是数据库实例终端节点,以及所使用的端口号是否正确。

  • 确保将数据库实例的公共可访问性设置为,以允许外部连接。要修改公有访问权限共访问设置,请参阅 修改 Amazon RDS 数据库实例

  • 检查分配给数据库实例的安全组是否具有允许您的连接通过相应防火墙进行访问的规则。例如,如果数据库实例是使用默认端口 5432 创建的,您公司的防火墙规则可能不允许外部公司设备连接到该端口。

    要解决此问题,请修改数据库实例以使用不同的端口。另外,确保应用于数据库实例的安全组允许连接到新端口。要修改数据库端口设置,请参阅 修改 Amazon RDS 数据库实例

  • 另请参阅 安全组访问规则错误

安全组访问规则错误

到目前为止,最常见的连接问题与分配给数据库实例的安全组的访问规则有关。如果在创建数据库实例时使用的是默认数据库安全组,则该安全组可能没有允许您访问该实例的访问规则。

要使连接运行,您在创建数据库实例时分配给它的安全组必须允许访问该数据库实例。例如,如果数据库实例是在 VPC 中创建的,则它必须具有授权连接的 VPC 安全组。检查数据库实例是否是使用安全组创建的,而该安全组没有授权来自运行应用程序的设备或 Amazon EC2 实例的连接。

您可以在安全组中添加或编辑入站规则。对于 Source (源),选择 My IP (我的 IP),这允许从浏览器中检测到的 IP 地址访问数据库实例。有关更多信息,请参阅通过创建安全组提供对 VPC 中的数据库实例的访问

或者,如果数据库实例是在 VPC 外部创建的,则它必须具有授权这些连接的数据库安全组。

有关 Amazon RDS 安全组的更多信息,请参阅 使用安全组控制访问权限