

# 连接到运行 PostgreSQL 数据库引擎的数据库实例
<a name="USER_ConnectToPostgreSQLInstance"></a>

在 Amazon RDS 预置数据库实例后，您可以使用任何标准 SQL 客户端应用程序连接到该实例。在可以连接之前，数据库实例必须是可用且可访问的。是否可以从 VPC 外部连接到实例取决于您创建 Amazon RDS 数据库实例的方式：
+ 如果您将数据库实例创建为*公有*，VPC 外部的设备和 Amazon EC2 实例便可以连接到您的数据库。
+ 如果您将数据库实例创建为*私有*，只有 Amazon VPC 内的 Amazon EC2 实例和设备可以连接到您的数据库。

若要检查数据库实例是公有还是私有实例，请使用 AWS 管理控制台 查看实例的 **Connectivity & security**（连接和安全性）选项卡。您可以在 **Security**（安全性）项下找到“公开访问”值，其中“否”表示私有，“是”表示公有。

要详细了解不同的 Amazon RDS 和 Amazon VPC 配置及其如何影响可访问性，请参阅 [在 VPC 中访问数据库实例的场景](USER_VPC.Scenarios.md)。

**Contents**
+ [安装 psql 客户端](#install-psql)
+ [查找有关 RDS for PostgreSQL 数据库实例的连接信息](#postgresql-endpoint)
+ [使用 pgAdmin 连接到 RDS for PostgreSQL 数据库实例](USER_ConnectToPostgreSQLInstance.pgAdmin.md)
+ [使用 psql 连接到 RDS for PostgreSQL 数据库实例](USER_ConnectToPostgreSQLInstance.psql.md)
+ [使用 Amazon Web Services（AWS）JDBC 驱动程序连接到 RDS for PostgreSQL](PostgreSQL.Connecting.JDBCDriver.md)
+ [使用 Amazon Web Services（AWS）Python 驱动程序连接到 RDS for PostgreSQL](PostgreSQL.Connecting.PythonDriver.md)
+ [排除与您的 RDS for PostgreSQL 实例的连接故障](USER_ConnectToPostgreSQLInstance.Troubleshooting.md)
  + [错误 – FATAL：数据库*名称*不存在](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-DBname)
  + [错误 – 无法连接到服务器：连接超时](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-timeout)
  + [安全组访问规则错误](USER_ConnectToPostgreSQLInstance.Troubleshooting.md#USER_ConnectToPostgreSQLInstance.Troubleshooting-AccessRules)

## 安装 psql 客户端
<a name="install-psql"></a>

要从 EC2 实例连接到您的数据库实例，您可以在 EC2 实例上安装 PostgreSQL 客户端。要在 Amazon Linux 2023 上安装 psql 客户端的最新版本，请运行以下命令：

```
sudo dnf install postgresql<version number>
```

要在 Amazon Linux 2 上安装 psql 客户端的最新版本，请运行以下命令：

```
sudo yum install -y postgresql
```

要在 Ubuntu 上安装 psql 客户端的最新版本，请运行以下命令：

```
sudo apt install -y postgresql-client
```

## 查找有关 RDS for PostgreSQL 数据库实例的连接信息
<a name="postgresql-endpoint"></a>

如果数据库实例可用且可访问，则可以通过向 SQL 客户端应用程序提供以下信息进行连接：
+ 数据库实例端点，用作实例的主机名（DNS 名称）。
+ 数据库实例侦听的端口。对于 PostgreSQL，原定设置端口为 5432。
+ 数据库实例的用户名和密码。PostgreSQL 的原定设置“主用户名”是 `postgres`。
+ 数据库的名称和密码（数据库名称）。

 要获取这些详细信息，您可以使用 AWS 管理控制台、AWS CLI [describe-db-instances](https://docs.aws.amazon.com/cli/latest/reference/rds/describe-db-instances.html) 命令或 Amazon RDS API [DescribeDBInstances](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_DescribeDBInstances.html) 操作。

**要使用 AWS 管理控制台 查找端点、端口编号和数据库名称**

1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon RDS 控制台：[https://console.aws.amazon.com/rds/](https://console.aws.amazon.com/rds/)。

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

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

1. 在**连接和安全性**选项卡上，复制端点。另请注意端口号。您需要端点和端口号才能连接到数据库实例。  
![\[从 RDS 控制台获取端点\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PostgreSQL-endpoint.png)

1. 在 **Configuration**（配置）选项卡中，记下数据库名称。如果您在创建 RDS for PostgreSQL 实例时创建了数据库，就会看到数据库名称下列出的名称。如果您没有创建数据库，则数据库名称将显示破折号 (‐)。  
![\[从 RDS 控制台获取数据库名称\]](http://docs.aws.amazon.com/zh_cn/AmazonRDS/latest/UserGuide/images/PostgreSQL-db-name.png)

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