Cloud SQL Auth 代理使用快速入门

本页面介绍了如何使用 Cloud SQL Auth 代理从本地测试环境连接到 Cloud SQL。借助 Cloud SQL Auth 代理,您无需授权网络或配置 SSL,即可安全访问 Cloud SQL 实例。通过使用 Cloud SQL Auth 代理,您可以安全地连接到 Cloud SQL 实例。

下述说明不适用于为生产环境设置 Cloud SQL Auth 代理。此外,如需了解用于身份验证和使用代理的更多连接选项,请参阅使用 Cloud SQL Auth 代理进行连接

设置项目

在执行本快速入门中的步骤之前,请完成以下任务:

  1. 登录您的 Google Cloud 帐号。如果您是 Google Cloud 新手,请创建一个帐号来评估我们的产品在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
  2. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  3. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  4. 在 Google Cloud Console 的项目选择器页面上,选择或创建一个 Google Cloud 项目。

    转到“项目选择器”

  5. 确保您的 Cloud 项目已启用结算功能。 了解如何确认您的项目是否已启用结算功能

  6. 确保您的用户帐号具有 Cloud SQL Admin 角色。
    • 转到 IAM 页面。
      转到 IAM 页面
    • 点击添加
    • 新主帐号中,添加您的用户帐号名称。
    • 选择角色中,过滤 Cloud SQL Admin,然后从列表中选择该角色。
    • 点击保存
  7. 启用 Cloud SQL Admin API。

    启用 API

创建 Cloud SQL 实例

在此过程中,您将使用 Google Cloud Console。如需使用 gcloud 命令行工具、cURL 或 PowerShell,请参阅创建实例

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击创建实例
  3. 点击 PostgreSQL
  4. 如果系统提示您启用 Compute API,请点击启用 API 按钮。
  5. 实例 ID 部分输入 myinstance
  6. 为 postgres 用户输入密码。
  7. 对于其他字段,请使用默认值。
  8. 点击创建

    您将返回到实例列表;您可以立即点击进入新实例来查看详细信息,但该实例只能在初始化并启动之后才可用。

    注意:在此示例中,实例是使用默认设置(包括公共 IP 地址)创建的。

安装 psql 客户端。

Debian/Ubuntu

通过软件包管理器安装 psql 客户端:

sudo apt-get update
sudo apt-get install postgresql-client

CentOS/RHEL

通过软件包管理器安装 psql 客户端:

sudo yum install postgresql

openSUSE

通过软件包管理器安装 psql 客户端:

sudo zypper install postgresql

其他平台

  1. PostgreSQL 下载页面下载适用于您的平台的 PostgreSQL 核心发行版。
    核心发行版包含 psql 客户端。
  2. 按照下载页面上的说明安装 PostgreSQL 数据库。

安装 Cloud SQL Auth 代理客户端

您下载的 Cloud SQL Auth 代理二进制文件取决于您的操作系统,以及该系统使用的是 32 位还是 64 位内核。大多数较新的硬件使用的是 64 位内核。如果您不确定自己的机器运行的内核是 32 位还是 64 位,请使用 name -a 命令(Linux 或 macOS)。对于 Windows,请参阅 Windows 文档

Linux 64 位

  1. 下载 Cloud SQL Auth 代理:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    
  2. 使 Cloud SQL Auth 代理可执行:
    chmod +x cloud_sql_proxy
    

Linux 32 位

  1. 下载 Cloud SQL Auth 代理:
    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
    
  2. 如果找不到 wget 命令,请运行 sudo apt-get install wget 并重复执行下载命令。
  3. 使 Cloud SQL Auth 代理可执行:
    chmod +x cloud_sql_proxy
    

macOS 64 位

  1. 下载 Cloud SQL Auth 代理:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64
    
  2. 使 Cloud SQL Auth 代理可执行:
    chmod +x cloud_sql_proxy
    

macOS 32 位

  1. 下载 Cloud SQL Auth 代理:
    curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.386
    
  2. 使 Cloud SQL Auth 代理可执行:
    chmod +x cloud_sql_proxy
    

Windows 64 位

右键点击 https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe,然后选择链接另存为以下载 Cloud SQL Auth 代理。将文件重命名为 cloud_sql_proxy.exe

Windows 32 位

右键点击 https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe,然后选择链接另存为以下载 Cloud SQL Auth 代理。将文件重命名为 cloud_sql_proxy.exe

Cloud SQL Auth 代理 Docker 映像

为方便起见,GitHub 上的 Cloud SQL Auth 代理代码库中提供了多个包含 Cloud SQL Auth 代理的容器映像。您可以通过 Docker 使用以下命令将最新映像拉取到本地机器:
docker pull gcr.io/cloudsql-docker/gce-proxy:1.19.1

其他操作系统

对于此处未列出的其他操作系统,您可以通过源代码编译 Cloud SQL Auth 代理

获取实例连接名称

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 点击实例名称,打开其概览页面。
  3. 连接到此实例部分,复制连接名称。连接名称的格式为 projectID:region:instanceID

启动 Cloud SQL Auth 代理

在专有的终端中启动 Cloud SQL Auth 代理,以便监控其输出。将 INSTANCE_CONNECTION_NAME 替换为您在上一步中复制的实例连接名称。

对于 Linux 环境,使用以下命令启动 Cloud SQL Auth 代理:

./cloud_sql_proxy -instances=INSTANCE_CONNECTION_NAME=tcp:5432

在 Windows 中的 PowerShell 中,使用以下命令启动 Cloud SQL Auth 代理:

.\cloud_sql_proxy.exe -instances=INSTANCE_CONNECTION_NAME=tcp:5432

系统会显示类似以下内容的消息:

Listening on 127.0.0.1:5432 for INSTANCE_CONNECTION_NAME
Ready for new connections

运行以下命令:

psql "host=127.0.0.1 port=5432 sslmode=disable dbname=DB_NAME user=USERNAME"

在“输入密码:”提示符处,输入您的 PostgreSQL 帐号的密码。

验证 PostgreSQL 提示符是否显示。您已使用 psql 客户端连接到数据库。

返回到您启动了 Cloud SQL Auth 代理的终端窗口。您应该会看到如下所示的消息:

New connection for myInstance

清理

  1. 在 Google Cloud Console 中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 选择实例的名称以打开概览页面。
  3. 在页面顶部的图标栏中,点击删除
  4. 删除实例窗口中,输入实例名称,然后点击删除以删除该实例。

    在删除实例后的大约 7 天内,您不能重新使用相应的实例名称。

后续步骤