默认情况下,数据库集群仅允许来自用户集群和同一项目的连接。
如需允许从其他项目连接到您项目中的所有数据库集群,请参阅启用跨项目连接。
如需允许从 GDC 组织外部的 IP 地址连接到数据库集群,请参阅启用外部连接。
使用绑定到 project-db-admin
角色的账号登录 GDC 控制台,以查找以下信息,从而连接到数据库集群。此信息位于数据库服务页面的连接部分。
这些步骤包含使用 psql
连接到数据库的示例。具体步骤会因您选择的客户端软件而异。
控制台
前往数据库集群的数据库服务页面的连接部分。本页包含:
- 管理员账号的密码(用户名为
dbsadmin
) - 数据库集群的主端点的主机名和端口号
- 如果数据库集群允许组织外部的外部连接。
- 用于连接到集群的
psql
命令(适用于 PostgreSQL 和 AlloyDB Omni 数据库集群) - 用于通过 Java 数据库连接 (JDBC) 连接到集群的字符串(适用于 Oracle 数据库集群)
- 用于下载数据库集群的证书授权机构 (CA) 证书的链接
- 管理员账号的密码(用户名为
从 GDC 控制台的数据库集群的数据库服务页面中的连接部分下载 CA 证书。
配置客户端以使用 CA 证书验证数据库。对于
psql
客户端,请将PGSSLROOTCERT
环境变量设置为证书文件的路径,并将PGSSLMODE
环境变量设置为您的偏好设置:export PGSSLROOTCERT=path/to/accounts_cert.pem export PGSSLMODE="verify-full"
从客户端软件连接到数据库。如果您使用的是
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
从数据库集群状态中检索数据库端点:
kubectl get dbcluster.DBENGINE_NAME.dbadmin.gdc.goog DBCLUSTER_NAME -n USER_PROJECT -o=jsonpath='{.status.primary.url}'
从 Kubernetes Secret 下载 CA 证书:
kubectl get secret dbs-certificates -n USER_PROJECT -o json | jq -r '.data."dbs-DBENGINE_SHORT_NAME-cert-DBCLUSTER_NAME"' | base64 -d > path/to/ca.crt
配置客户端以使用 CA 证书验证数据库。对于
psql
客户端,您可以将PGSSLROOTCERT
环境变量设置为证书文件的路径,并将PGSSLMODE
环境变量设置为您的偏好设置:export PGSSLROOTCERT=path/to/accounts_cert.pem export PGSSLMODE="verify-full"
从客户端软件连接到数据库。如果您使用的是
psql
,请运行以下命令:PGPASSWORD=DB_PASSWORD psql -h DB_HOSTNAME -p DB_PORT -U DB_USERNAME -d postgres
执行以下变量替换操作:
DBENGINE_NAME
:数据库引擎的名称。可以是alloydbomni
、postgresql
或oracle
。USER_PROJECT
:创建数据库集群的用户项目的名称。DBENGINE_SHORT_NAME
:数据库引擎的缩写名称。这是al
(AlloyDB Omni)、pg
(PostgreSQL) 或ora
(Oracle) 之一。DBCLUSTER_NAME
:数据库集群的名称。path/to/
:数据库 CA 证书的路径。DB_PASSWORD
:管理员用户的数据库密码。DB_HOSTNAME
:数据库集群状态中的主机名。DB_PORT
:数据库集群状态中的数据库端口号。DB_USERNAME
:替换为数据库用户名(默认值为dbsadmin
)。