Amazon Redshift
管理指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

使用 psql 工具连接到您的群集

创建 Amazon Redshift 群集后,您可以使用 psql 工具(PostgreSQL 中基于终端的前端)来查询群集中的数据。您能以交互方式键入查询,或从文件中读取查询。要通过 psql 进行连接,您必须指定群集终端节点、数据库和端口。

注意

Amazon Redshift 不提供 psql 工具;它随 PostgreSQL 一起安装。有关使用 psql 的信息,请转至 http://www.postgresql.org/docs/8.4/static/app-psql.html。有关安装 PostgreSQL 客户端工具的信息,请访问以下位置的 PostgreSQL 二进制文件下载页面并选择您的操作系统:http://www.postgresql.org/download/

使用 psql 默认设置进行连接

默认情况下,psql 不会验证 Amazon Redshift 服务,但会使用安全套接字层 (SSL) 建立加密连接。

使用 psql 默认设置进行连接

  1. 登录 AWS 管理控制台 并通过以下网址打开 Amazon Redshift 控制台:https://console.amazonaws.cn/redshift/

  2. 在左侧导航窗格中,单击 Clusters。单击您的群集以将其打开。在 Cluster Database Properties 下,记录 EndpointPortDatabase Name 的值。

  3. 在命令提示符处,使用命令行参数或连接信息字符串来指定连接信息。使用以下参数:

    Copy
    psql -h <endpoint> -U <userid> -d <databasename> -p <port>

    其中:

    • <endpoint> 是您在上一步中记录的 Endpoint

    • <userid> 是有权连接到群集的用户 ID。

    • <databasename> 是您在上一步中记录的 Database Name

    • <port> 是您上一步中记录的 Port

    例如:

    Copy
    psql -h examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com -U masteruser -d dev -p 5439
  4. 在 psql 密码提示符处,输入 <userid> 用户的密码。

您现已连接到群集,并能以交互方式输入命令。

使用证书进行连接

要控制 psql 是否要使用证书对服务进行身份验证,您必须使用连接信息字符串指定连接信息,并指定 sslmode 关键字。默认情况下,psql 采用的是 sslmode=prefer。要指定 psql 打开加密连接并使用 Amazon Redshift 证书验证服务,请将 Amazon Redshift 证书下载到您的计算机上。除非您不使用 DNS 别名,请指定 verify-full。如果您使用 DNS 别名,请选择 verify-ca。通过 sslrootcert 指定证书的位置。有关 sslmode 的更多信息,请参阅 配置连接的安全选项

有关连接信息字符串参数的更多信息,请参阅 http://www.postgresql.org/docs/8.4/static/libpq-connect.html

使用证书进行连接

  1. 保存并将 Redshift 证书颁发机构捆绑 .crt 文件下载到您的计算机。如果您使用的是 Internet Explorer,要执行文件\另存为操作,请将文件类型指定为文本文件 (*.txt),并删除 .txt 扩展名。例如,将其另存为文件 C:\MyDownloads\redshift-ca-bundle.crt

  2. 在 Amazon Redshift 控制台中,选择群集以显示 Cluster Database Properties。记录在 EndpointPortDatabase Name 字段中显示的值。

  3. 在命令提示符处,使用连接信息字符串指定连接信息:

    Copy
    psql "host=<endpoint> user=<userid> dbname=<databasename> port=<port> sslmode=verify-ca sslrootcert=<certificate>"

    其中:

    • <endpoint> 是您在上一步中记录的 Endpoint

    • <userid> 是有权连接到群集的用户 ID。

    • <databasename> 是您在上一步中记录的 Database Name

    • <port> 是您上一步中记录的 Port

    • <certificate> 是证书文件的完整路径。在 Windows 系统上,指定证书路径必须使用 Linux 式分隔符“/”而非 Windows 式分隔符“\”。

      在 Linux 和 Mac OS X 操作系统上,路径为

      Copy
      ~/.postgresql/root.crt

      在 Microsoft Windows 上,路径为

      Copy
      %APPDATA%/postgresql/root.crt

    例如:

    Copy
    psql "host=examplecluster.<XXXXXXXXXXXX>.us-west-2.redshift.amazonaws.com user=masteruser dbname=dev port=5439 sslmode=verify-ca sslrootcert=C:/MyDownloads/redshift-ca-bundle.crt"
  4. 在 psql 密码提示符处,输入 <userid> 用户的密码。

您现已连接到群集,并能以交互方式输入命令。