您可以通过数据管理DMS平台、PostgreSQL命令行终端工具、pgAdmin客户端或应用程序等方式连接PostgreSQL实例,实现业务目标。本文介绍这些连接方法的具体操作。
前提条件
- 创建RDS PostgreSQL实例
- 创建账号
- 设置白名单
- ECS要通过内网访问RDS,必须满足以下所有条件:
- ECS和RDS属于同一个阿里云主账号。
- ECS和RDS位于同一个地域。
- ECS和RDS必须处于同一个VPC。
- ECS的私网IP已添加到RDS白名单,具体操作请参见设置白名单。
通过DMS连接
您可以在基本信息页面单击登录数据库通过DMS链接数据库。

具体操作请参见通过DMS登录RDS数据库。
通过pgAdmin客户端连接
通过PostgreSQL官方网站下载并安装PostgreSQL客户端时,将会自动安装pgAdmin 4客户端,您也可以单独下载pgAdmin客户端。
- 启动pgAdmin 4客户端。
说明 高版本客户端首次登录需要设置Master Password用于保护保存的密码和其他凭据。
- 右键单击Servers,选择 。
- 在General页签设置连接名称。
- 选择Connection标签页,输入要连接的实例信息。
参数 说明 Hostname/address 主机名称/地址。若通过内网连接,需输入RDS实例的内网连接地址;若使用外网连接,需输入RDS实例的外网连接地址。查看RDS实例的内外网地址及端口请参见查看或修改内外网地址和端口。 Port 连接地址对应的端口。 Username RDS实例的账号名称。创建RDS实例的账号请参见创建数据库和账号。 Password 账号对应的密码。 - 单击Save。
若连接信息无误,会出现如下界面,则表示连接成功。注意 postgres是RDS实例默认的系统数据库,请勿在该数据库中进行任何操作。
通过PostgreSQL客户端命令行工具连接
通过PostgreSQL官方网站下载并安装PostgreSQL客户端时,将会自动安装PostgreSQL命令行终端工具(Command Line Tools)。
psql -h <实例连接地址> -U <用户名> -p <端口号> -d <数据库名>

参数 | 获取方法 |
---|---|
实例连接地址 | RDS PostgreSQL实例的连接地址,具体请参见查看或修改内外网地址和端口。 |
用户名 | 通过账号管理页面获取用户名。创建账号,请参见创建账号。 |
端口号 | 默认为5432,如果您修改过,通过数据库连接页面获取。具体请参见查看或修改内外网地址和端口。 |
数据库名 | postgres是RDS PostgreSQL实例默认的系统数据库,请勿在该数据库中进行任何操作。如果您需要连接RDS实例下创建的其他数据库,可从数据库管理页面获取。创建数据库,请参见创建数据库。 |
通过SQL Shell(psql)工具连接
通过PostgreSQL官方网站下载并安装PostgreSQL客户端时,将会自动安装SQL Shell(psql)工具。
在本地Windows系统的开始菜单中找到并打开SQL Shell(psql)工具,依次输入对应参数连接RDS PostgreSQL实例。

参数 | 获取方法 |
---|---|
Server | RDS PostgreSQL实例的连接地址,具体请参见查看或修改内外网地址和端口。 |
Database | 数据库名,不配置默认为系统数据库postgres,请勿在该数据库中进行任何操作。如果您需要连接RDS实例下创建的其他数据库,可从数据库管理页面获取。创建数据库,请参见创建数据库。 |
Port | 端口号,不配置默认为5432,如果您修改过,通过数据库连接页面获取。具体请参见查看或修改内外网地址和端口。 |
Username | 用户名,通过账号管理页面获取用户名。创建账号,请参见创建账号。 |
通过应用程序连接
- pom.xml中添加依赖。
<dependency> <groupId>postgresql</groupId> <artifactId>postgresql</artifactId> <version>8.2-504.jdbc3</version> </dependency>
- 连接实例示例代码如下:
public class DatabaseConnection { public static void main( String[] args ){ try { Class.forName("org.postgresql.Driver"); } catch (ClassNotFoundException e) { e.printStackTrace(); } //实例连接地址 String hostname = "pgm-bp1i3kkq7321o9****.pg.rds.aliyuncs.com"; //实例连接端口 int port = 5432; //数据库名称 String dbname = "postgres"; //用户名 String username = "username"; //密码 String password = "password"; String dbUrl = "jdbc:postgresql://" + hostname + ":" + port + "/" + dbname + "?binaryTransfer=true"; Connection dbConnection; try { dbConnection = DriverManager.getConnection(dbUrl, username, password); Statement statement = dbConnection.createStatement(); //输入需要执行的SQL语句。 String selectSql = "SELECT * FROM information_schema.sql_features LIMIT 10"; ResultSet resultSet = statement.executeQuery(selectSql); while (resultSet.next()) { System.out.println(resultSet.getString("feature_name")); } } catch (SQLException e) { e.printStackTrace(); } } }
通过SSL安全连接
RDS PostgreSQL支持设置SSL链路加密,对网络连接进行加密,保证传输链路的安全。具体配置请参见SSL连接RDS PostgreSQL数据库。
连接失败的解决办法
请参见解决无法连接实例问题。
常见问题
Q:我使用函数计算,想获取RDS的数据,要怎么操作呢?
A:您可以为函数安装第三方依赖,使用内置模块获取RDS数据,详情请参见为函数安装第三方依赖。