RDS PostgreSQL实例支持通过多种方式连接(如通过数据管理DMS、pgAdmin客户端、PostgreSQL命令行工具、应用程序等),实现您的业务目标。本文介绍这些连接方法的具体操作。
前提条件
已创建RDS PostgreSQL实例。更多信息,请参见创建RDS PostgreSQL实例。
已创建账号和数据库。更多信息,请参见创建账号和数据库。
已设置白名单,允许客户端所在的ECS或本地设备访问RDS PostgreSQL实例。更多信息,请参见设置白名单
如果使用ECS通过内网访问RDS PostgreSQL,ECS和RDS PostgreSQL实例需要位于同一个地域的同一VPC下,然后将ECS的私网IP添加到白名单。
如果使用本地设备访问RDS PostgreSQL,则将本地设备的公网IP添加到白名单。
操作步骤
数据管理DMS连接
数据管理DMS是一种集数据管理、结构管理、用户授权、安全审计、数据趋势、数据追踪、BI图表、性能与优化和服务器管理于一体的数据管理服务。数据管理DMS的更多信息,请参见什么是数据管理DMS 。
- 访问RDS实例列表,在上方选择地域,然后单击目标实例ID。
在基本信息页面单击登录数据库。
在DMS的登录实例页面,输入实例数据库的账号密码,单击登录。
说明请确保登录的数据库账号拥有目标数据库的权限,否则在左侧菜单里看不到目标数据库。
登录后请刷新页面,然后在左侧已登录实例菜单即可看到实例内已创建的数据库。
除了通过RDS控制台跳转到DMS进行登录,您还可以登录DMS控制台直接录入RDS实例,录入后可以在DMS控制台快速登录数据库。详情请参见云数据库录入。
pgAdmin客户端连接
pgAdmin客户端是PostgreSQL官方推荐的数据库连接工具,在PostgreSQL官方网站下载并安装PostgreSQL时,将会自动安装pgAdmin 4客户端。下文以pgAdmin 4 V6.2.0
为例,介绍如何连接RDS PostgreSQL实例。
如果您不想安装PostgreSQL,也可以单独下载pgAdmin客户端,仅用于连接远程数据库。
启动pgAdmin 4客户端。
说明高版本客户端首次登录需要设置Master Password用于保护保存的密码和其他凭据。
右键单击Servers,选择
。在General页签设置连接名称。
选择Connection标签页,输入要连接的实例信息。
参数
说明
Host name/address
RDS PostgreSQL实例的连接地址及对应的端口。
若通过内网连接,需输入RDS实例的内网地址和内网端口。
若使用外网连接,需输入RDS实例的外网地址和外网端口。
您可以在RDS PostgreSQL实例的数据库连接页面查看。
更多信息,请参见查看或修改连接地址和端口。
Port
Username
RDS PostgreSQL实例的账号和密码。
创建RDS实例的账号请参见创建账号和数据库。
Password
单击Save。
若连接信息无误,会出现如下界面,则表示连接成功。
重要postgres是RDS实例默认的系统数据库,请勿在该数据库中进行任何操作。
PostgreSQL命令行工具连接
通过PostgreSQL官方网站下载并安装PostgreSQL时,将会自动安装PostgreSQL命令行终端工具(Command Line Tools)。
在命令行终端中输入如下命令连接RDS PostgreSQL数据库。
psql -h <实例连接地址> -U <用户名> -p <端口号> [-d <数据库名>]
参数 | 说明 |
实例连接地址 | RDS PostgreSQL实例的连接地址及对应的端口。
您可以在RDS PostgreSQL实例的数据库连接页面查看。 更多信息,请参见查看或修改连接地址和端口。 |
端口号 | |
用户名 | RDS PostgreSQL实例的账号。 创建RDS实例的账号请参见创建账号和数据库。 |
数据库名 | 可选,需要连接的数据库名,postgres是RDS PostgreSQL实例默认的系统数据库,请勿在该数据库中进行任何操作,建议配置RDS实例下已创建的其他数据库。 如何创建和查看数据库,请参见创建数据库。 |
应用程序连接
本文以Maven项目JDBC连接RDS PostgreSQL实例为例,其它编程语言连接方式类似。
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数据,详情请参见为函数安装第三方依赖。