您可以通过数据管理DMS平台、PostgreSQL命令行终端工具、pgAdmin客户端或应用程序等方式连接PostgreSQL实例,实现业务目标。本文介绍这些连接方法的具体操作。

前提条件

已完成以下操作:

通过DMS连接

您可以在基本信息页面单击登录数据库通过DMS链接数据库。

登录数据库

具体操作请参见通过DMS登录RDS数据库

通过pgAdmin客户端连接

通过PostgreSQL官方网站下载PostgreSQL客户端时,将会自动安装pgAdmin 4客户端,您也可以单独下载pgAdmin客户端

  1. 启动pgAdmin 4客户端。
    说明 高版本客户端首次登录需要设置Master Password用于保护保存的密码和其他凭据。
  2. 右键单击Servers,选择Create > Server...
  3. General页签设置连接名称。
  4. 选择Connection标签页,输入要连接的实例信息。
    参数 说明
    Hostname/address 主机名称/地址。若通过内网连接,需输入RDS实例的内网连接地址;若使用外网连接,需输入RDS实例的外网连接地址。查看RDS实例的内外网地址及端口请参见查看或修改内外网地址和端口
    Port 连接地址对应的端口。
    Username RDS实例的账号名称。创建RDS实例的账号请参见创建数据库和账号
    Password 账号对应的密码。
  5. 单击Save
    若连接信息无误,会出现如下界面,则表示连接成功。
    注意 postgres是RDS实例默认的系统数据库,请勿在该数据库中进行任何操作。

通过PostgreSQL客户端命令行工具连接

通过PostgreSQL官方网站下载PostgreSQL客户端时,将会自动安装PostgreSQL命令行终端工具(Command Line Tools)

在命令行终端中输入如下命令连接RDS PostgreSQL数据库。
psql -h <实例连接地址> -U <用户名> -p <端口号> -d <数据库名>
psql登录
各参数在RDS控制台的获取方法。
参数 获取方法
实例连接地址 RDS PostgreSQL实例的连接地址,具体请参见查看或修改内外网地址和端口
用户名 通过账号管理页面获取用户名。创建账号,请参见创建账号
端口号 默认为5432,如果您修改过,通过数据库连接页面获取。具体请参见查看或修改内外网地址和端口
数据库名 postgres是RDS PostgreSQL实例默认的系统数据库,请勿在该数据库中进行任何操作。如果您需要连接RDS实例下创建的其他数据库,可从数据库管理页面获取。创建数据库,请参见创建数据库

通过SQL Shell(psql)工具连接

通过PostgreSQL官方网站下载PostgreSQL客户端时,将会自动安装SQL Shell(psql)工具。

在本地Windows系统的开始菜单中找到并打开SQL Shell(psql)工具,依次输入对应参数连接RDS PostgreSQL实例。

SQL Shell
各参数在RDS控制台的获取方法。
参数 获取方法
Server RDS PostgreSQL实例的连接地址,具体请参见查看或修改内外网地址和端口
Database 数据库名,不配置默认为系统数据库postgres,请勿在该数据库中进行任何操作。如果您需要连接RDS实例下创建的其他数据库,可从数据库管理页面获取。创建数据库,请参见创建数据库
Port 端口号,不配置默认为5432,如果您修改过,通过数据库连接页面获取。具体请参见查看或修改内外网地址和端口
Username 用户名,通过账号管理页面获取用户名。创建账号,请参见创建账号

通过应用程序连接

说明 本文以Maven项目JDBC连接实例为例,其它编程语言连接方式类似。
  1. pom.xml中添加依赖。
    <dependency>
      <groupId>postgresql</groupId>
      <artifactId>postgresql</artifactId>
      <version>8.2-504.jdbc3</version>
    </dependency>
  2. 连接实例示例代码如下:
    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数据,详情请参见为函数安装第三方依赖