连接到数据库集群

默认情况下,数据库集群仅允许从用户集群和同一项目中进行连接。

如需允许从其他项目连接到您项目中的所有数据库集群,请参阅启用跨项目连接。

如需允许从 GDC 组织外部的 IP 地址连接到数据库集群,请参阅启用外部连接。

使用绑定到 Database Project Admin 角色的账号登录 GDC 控制台,以查找用于连接到数据库集群的以下信息。此信息位于数据库服务页面的连接性部分。

这些步骤包含一个使用 psql 连接到数据库的示例。确切步骤因您选择的客户端软件而异。

控制台

  1. 前往数据库集群的数据库服务页面的连接性部分。本页包含:

    • 管理员账号(用户名为 dbsadmin)的密码
    • 数据库集群主端点的主机名和端口号
    • 数据库集群是否允许来自组织外部的连接。
    • 用于连接到集群的 psql 命令
    • 用于下载数据库集群的证书授权机构 (CA) 证书的链接
  2. 从 GDC 控制台中下载 CA 证书,该证书位于数据库集群的数据库服务页面的连接部分。

  3. 将客户端配置为使用 CA 证书来验证数据库。对于 psql 客户端,请将 PGSSLROOTCERT 环境变量设置为证书文件的路径,并将 PGSSLMODE 环境变量设置为您的偏好设置:

    export PGSSLROOTCERT=path/to/accounts_cert.pem
    export PGSSLMODE="verify-full"
    
  4. 通过客户端软件连接到数据库。如果您使用的是 psql,请运行以下命令:

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p PORT -U USERNAME -d postgres
    

执行以下变量替换操作:

  • path/to/:accounts_cert.pem 证书的路径。
  • DB_PASSWORD:控制台中的密码。
  • DB_HOSTNAME:控制台中的数据库主机名。
  • DB_PORT:控制台中的数据库端口号。
  • DB_USERNAME:控制台中的数据库用户名。

API

  1. 从数据库集群状态中检索数据库端点:

    kubectl get dbcluster.postgresql.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
    
  2. 从 Kubernetes Secret 下载 CA 证书:

    kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-pg-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
    
  3. 将客户端配置为使用 CA 证书来验证数据库。对于 psql 客户端,您可以将 PGSSLROOTCERT 环境变量设置为证书文件的路径,并将 PGSSLMODE 环境变量设置为您的偏好设置:

    export PGSSLROOTCERT=path/to/ca.crt
    export PGSSLMODE="verify-full"
    
  4. 通过客户端软件连接到数据库。如果您使用的是 psql,请运行以下命令:

    PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p DB_PORT -U DB_USERNAME -d postgres
    

执行以下变量替换操作:

  • USER_PROJECT:在其中创建了数据库集群的用户项目的名称。
  • DBCLUSTER_NAME:数据库集群的名称。
  • path/to/:数据库 CA 证书的路径。
  • DB_PASSWORD:管理员用户的数据库密码。
  • DB_HOSTNAME:数据库集群状态中的主机名。
  • DB_PORT:数据库集群状态中的数据库端口号。
  • DB_USERNAME:替换为数据库用户名(默认值为 dbsadmin)。