从本地计算机连接到 Cloud SQL for PostgreSQL
了解如何使用 Google Cloud 控制台和客户端应用在连接到 PostgreSQL 实例的 Linux、macOS 或 Windows 本地计算机上部署示例应用。
假设您及时完成所有步骤,则本快速入门中所创建资源的费用通常不会超过 1 美元 (USD)。
准备工作
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
-
启用在本地计算机上运行 Cloud SQL 示例应用所需的 Cloud API。
控制台
点击启用 API 按钮以启用本快速入门所需的 API。
这将启用以下 API:
- Cloud SQL Admin API
- IAM API
gcloud
安装 gcloud CLI,以通过命令行访问 Google Cloud 资源。gcloud CLI 用于运行本快速入门中提供的
gcloud CLI
命令。所有命令的格式均设置为在 Linux/macOS 终端或 Windows Powershell 中运行。打开终端并运行以下
gcloud
命令:gcloud services enable sqladmin.googleapis.com iam.googleapis.com
此命令会启用以下 API:
- Cloud SQL Admin API
- IAM API
设置 Cloud SQL
创建 Cloud SQL 实例
控制台
创建具有公共 IP 地址的实例
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 点击创建实例。
- 点击选择 PostgreSQL。
- 在实例 ID 部分输入
quickstart-instance
。 - 为 postgres 用户输入密码。保存此密码以供将来使用。
- 在选择区域和可用区可用性中点击单个可用区选项。
- 点击并展开显示配置选项部分。
- 在机器类型下拉菜单中,选择轻量级。
点击创建实例,然后等待实例初始化并启动。
gcloud
创建具有公共 IP 地址的实例
按照以下方式运行 gcloud
sql instances create
命令之前,请将 DB_ROOT_PASSWORD 替换为数据库用户的密码。
(可选)修改以下参数的值:
- --database_version:数据库引擎类型和版本。 如果未指定,则使用 API 默认值。 请参阅 gcloud 数据库版本文档,以查看当前可用版本。
- --cpu:要在机器中设置的核心数。
- --memory:表示要在机器中设置的内存大小的整数。应该提供大小单位(例如 3072MB 或 9GB)。如果未指定单位,则假定为 GB。
- --region:实例的区域位置(例如 asia-east1、us-east1)。如果未指定,则使用默认值
us-central
。 请参阅区域的完整列表。
运行 gcloud
sql instances create
命令以创建 Cloud SQL 实例。
gcloud sql instances create quickstart-instance --database-version=POSTGRES_13 --cpu=1 --memory=4GB --region=us-central --root-password=DB_ROOT_PASSWORD
创建数据库
控制台
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
。 - 打开数据库标签页。
- 点击创建数据库。
- 在新建数据库对话框中,输入
quickstart_db
作为数据库的名称。
- 点击创建。
gcloud
运行 gcloud
sql databases create
命令以创建数据库。
gcloud sql databases create quickstart_db --instance=quickstart-instance
创建用户
控制台
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 如需打开实例的概览页面,请点击实例名称。
- 从 SQL 导航菜单中选择用户。
- 点击添加用户账号。
- 在将一个用户账号添加到实例 instance_nameinstance_name 页面上,添加以下信息:
- 在用户名字段中,输入
quickstart-user
。 - 在密码字段中,指定数据库用户的密码。记下此密码,以便在本快速入门的后续步骤中使用。
- 在用户名字段中,输入
- 点击添加。
gcloud
替换以下内容:
- 将 PASSWORD 替换为您的数据库用户密码。记下此密码,以便在本快速入门的后续步骤中使用。
运行 gcloud sql users create
命令以创建用户。
gcloud sql users create quickstart-user --instance=quickstart-instance --password=PASSWORD
Cloud SQL 和本地 PostgreSQL 的用户名长度限制一样。
设置服务账号
控制台
创建服务账号
- 在 Google Cloud 控制台中,转到创建服务账号页面。
- 选择 Google Cloud 项目。
- 输入
quickstart-service-account
作为服务账号名称。 - 可选:输入服务账号的说明。
- 点击创建并继续,然后继续执行下一步。
- 选择要在项目上授予服务账号的 Cloud SQL Client 角色。
- 点击继续。
- 点击完成以完成服务账号的创建。
创建并下载服务账号密钥文件
- 在 Google Cloud 控制台中,转到服务账号页面。
- 选择一个项目。
- 点击要为其创建密钥的
quickstart-service-account
服务账号的电子邮件地址。 - 点击密钥标签页。
- 点击添加密钥下拉菜单,然后选择创建新密钥。
- 选择 JSON 作为密钥类型,然后点击创建。
点击创建即会下载服务账号密钥文件。下载密钥文件后,您无法再次下载。
务必要安全存储密钥文件,因为它能够以服务账号的身份进行身份验证。您可以根据需要移动并重命名此文件。
gcloud
创建服务账号
- 如需创建服务账号,请运行
gcloud iam service-accounts create
命令: DESCRIPTION
:服务账号的可选说明- 要在项目上向服务账号授予 Cloud SQL Client 角色,请运行
gcloud projects add-iam-policy-binding
命令。将 PROJECT_ID 替换为您的 Google Cloud 项目 ID:gcloud projects add-iam-policy-binding PROJECT_ID --member="serviceAccount:quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com" --role="roles/cloudsql.client"
gcloud iam service-accounts create quickstart-service-account --description="DESCRIPTION" --display-name="quickstart-service-account"
替换以下值:
创建并下载服务账号密钥文件
要使用刚刚从本地计算机创建的服务账号,您需要一个服务账号密钥文件,以服务账号的身份对示例应用进行身份验证。如需创建和下载服务账号密钥文件,请运行 gcloud iam service-accounts keys create
命令:
gcloud iam service-accounts keys create KEY_FILE --iam-account=quickstart-service-account@PROJECT_ID.iam.gserviceaccount.com
替换以下值:
-
KEY_FILE
:私钥的新输出文件的路径,例如~/sa-private-key.json
。 -
PROJECT_ID
:您的 Google Cloud 项目 ID。
现在,服务账号密钥文件已下载到您的本地计算机上。下载密钥文件后,您无法再次下载。
务必要安全存储密钥文件,因为任何人都可以使用它以服务账号的身份进行身份验证。您可以根据需要移动并重命名此文件。
设置编程语言的开发环境
为您的首选编程语言设置本地计算机的开发环境。
Go
完成以下步骤,设置运行 Go 示例应用的开发环境。
- 转到 Go 开发环境设置指南。
- 完成安装 Go 部分中的说明。
Java
完成以下步骤,设置运行 Java 示例应用的开发环境。
- 转到 Java 开发环境设置指南。
- 完成安装 JDK(Java 开发套件)部分中的说明。
- 完成安装构建自动化工具中的说明来设置 Apache Maven。
Node.js
完成以下步骤,设置运行 Node.js 示例应用的开发环境。
- 转到 Node.js 开发环境设置指南。
- 完成安装 Node.js 和 npm 部分中的说明。
Python
完成以下步骤,设置运行 Python 示例应用的开发环境。
- 转到 Python 开发环境设置指南。
- 完成安装 Python 部分中的说明。
安装 Git
安装开源版本控制系统 Git。
克隆示例应用
使用 git clone
命令将示例应用克隆到本地计算机。
Go
运行以下命令,将 Go 示例应用克隆到本地计算机,并将目录更改为包含示例应用的目录。
- 克隆示例应用。
git clone https://github.com/GoogleCloudPlatform/golang-samples
-
将目录更改为包含示例应用的目录。
cd golang-samples/cloudsql/postgres/database-sql
Java
运行以下命令,将 Java 示例应用克隆到本地计算机,并将目录更改为包含示例应用的目录。
- 克隆示例应用。
git clone https://github.com/GoogleCloudPlatform/java-docs-samples
-
将目录更改为包含示例应用的目录。
cd java-docs-samples/cloud-sql/postgres/servlet
Node.js
运行以下命令,将 Node.js 示例应用克隆到本地计算机,并将目录更改为包含示例应用的目录。
-
克隆示例应用。
git clone https://github.com/GoogleCloudPlatform/nodejs-docs-samples
-
将目录更改为包含示例应用的目录。
cd nodejs-docs-samples/cloud-sql/postgres/knex
Python
运行以下命令,将 Python 示例应用克隆到本地计算机,并将目录更改为包含示例应用的目录。
-
克隆示例应用。
git clone https://github.com/GoogleCloudPlatform/python-docs-samples
-
将目录更改为包含示例应用的目录。
cd python-docs-samples/cloud-sql/postgres/sqlalchemy
配置并运行示例应用
配置并运行示例应用。
清理
为避免因本页中使用的资源导致您的 Google Cloud 账号产生费用,请按照以下步骤操作。
-
在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。
- 选择
quickstart-instance
实例以打开实例详情页面。 - 在页面顶部的图标栏中,点击删除。
- 在删除实例对话框中,输入
quickstart-instance
,然后点击删除以删除该实例。
可选的清理步骤
如果您未使用分配给 quickstart-service-account
服务账号的 Cloud SQL client 角色,则可以将其移除。
-
在 Google Cloud 控制台中,前往 IAM 页面。
- 点击名为 quickstart-service-account 的 IAM 账号的修改图标(形似铅笔)。
- 删除 Cloud SQL client 角色。
- 点击保存。
如果您没有使用在本快速入门中启用的 API,则可以将其停用。
- 在本快速入门中启用的 API:
- Cloud SQL Admin API
- Identity and Access Management API
在 Google Cloud 控制台中,转到 API 页面。
选择您要停用的任何 API,然后点击停用 API 按钮。
后续步骤
您可以根据自己的需求详细了解如何创建 Cloud SQL 实例。您还可以了解如何为 Cloud SQL 实例创建 PostgreSQL 用户和数据库。
如需详细了解价格,请参阅 Cloud SQL for PostgreSQL 价格。
详细了解以下内容:
此外,您还可以了解如何从其他 Google Cloud 应用连接到 Cloud SQL 实例: