创建和管理数据库

本页面介绍如何在 Cloud SQL 实例上创建、列出和删除 PostgreSQL 数据库。

新创建的实例具有一个 postgres 数据库。

要详细了解 PostgreSQL 数据库,请参阅 PostgreSQL 文档

准备工作

在完成本页面上的任务之前,必须先执行以下操作:

  • 创建一个 Cloud SQL 实例。如需了解详情,请参阅创建实例

如果您计划通过 psql 客户端创建或管理数据库,则必须执行以下操作:

  • 配置访问权限并通过 psql 客户端连接到该实例。 如需详细了解连接方案,请参阅外部应用连接方案

在 Cloud SQL 实例上创建数据库

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 从 SQL 导航菜单中选择数据库
  4. 点击创建数据库
  5. 新建数据库对话框中,指定数据库的名称。
  6. 点击创建

gcloud

如需了解参考信息,请参阅 gcloud sql databases create

gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME

Terraform

如需创建数据库,请使用 Terraform 资源

resource "google_sql_database" "database" {
  name     = "my-database"
  instance = google_sql_database_instance.instance.name
}

应用更改

如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。

准备 Cloud Shell

  1. 启动 Cloud Shell
  2. 设置要在其中应用 Terraform 配置的默认 Google Cloud 项目。

    您只需为每个项目运行一次以下命令,即可在任何目录中运行它。

    export GOOGLE_CLOUD_PROJECT=PROJECT_ID

    如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。

准备目录

每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。

  1. Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf 扩展名,例如 main.tf。在本教程中,该文件称为 main.tf
    mkdir DIRECTORY && cd DIRECTORY && touch main.tf
  2. 如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。

    将示例代码复制到新创建的 main.tf 中。

    (可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。

  3. 查看和修改要应用到您的环境的示例参数。
  4. 保存更改。
  5. 初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init

    (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade 选项:

    terraform init -upgrade

应用更改

  1. 查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:
    terraform plan

    根据需要更正配置。

  2. 通过运行以下命令并在提示符处输入 yes 来应用 Terraform 配置:
    terraform apply

    等待 Terraform 显示“应用完成!”消息。

  3. 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。

删除更改

如需删除更改,请执行以下操作:

  1. 如需停用删除防护,请在 Terraform 配置文件中将 deletion_protection 参数设置为 false
    deletion_protection =  "false"
  2. 运行以下命令并在提示符处输入 yes,以应用更新后的 Terraform 配置:
    terraform apply
  1. 运行以下命令并在提示符处输入 yes,以移除之前使用 Terraform 配置应用的资源:

    terraform destroy

REST v1

以下请求使用 databases:insert 方法在指定的实例上创建新数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • database-name:Cloud SQL 实例中数据库的名称

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

请求 JSON 正文:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

以下请求使用 databases:insert 方法在指定的实例上创建新数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • database-name:Cloud SQL 实例中数据库的名称

HTTP 方法和网址:

POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

请求 JSON 正文:

{
  "project": "project-id",
  "instance": "instance-id",
  "name": "database-name"
}

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

psql 客户端

如需了解参考信息,请参阅 PostgreSQL 文档中的 CREATE DATABASE

如需了解背景信息以及支持的字符集值列表,请参阅 PostgreSQL 文档中的以下主题:

CREATE DATABASE database_name
  [[ ENCODING encoding ][ LC_COLLATE lc_collate ]];

例如:
CREATE DATABASE "example_db" WITH OWNER "example_user" ENCODING 'UTF8' LC_COLLATE = 'pl_PL.utf8' LC_CTYPE = 'pl_PL.utf8' TEMPLATE template0;

列出数据库

要列出实例上的所有数据库,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 点击左侧菜单中的数据库数据库页面列出了数据库及其排序规则类型、字符集和数据库类型。

gcloud

如需了解参考信息,请参阅 gcloud sql databases list

gcloud sql databases list \
--instance=INSTANCE_NAME

REST v1

以下请求使用 databases:list 方法列出实例的数据库。

使用此 API 列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

GET https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

以下请求使用 databases:list 方法列出实例的数据库。

使用此 API 列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID

HTTP 方法和网址:

GET https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

psql 客户端

如需了解参考信息,请参阅列表

使用 psql 客户端列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。

\l

删除数据库

要删除 Cloud SQL 实例上的数据库,请执行以下操作:

控制台

  1. 在 Google Cloud 控制台中,转到 Cloud SQL 实例页面。

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 点击左侧菜单中的数据库
  4. 在数据库列表中,找到您要删除的数据库并点击回收站图标。
  5. 删除数据库对话框中,输入数据库的名称,然后点击删除

gcloud

如需了解参考信息,请参阅 gcloud sql databases delete

gcloud sql databases delete DATABASE_NAME \
--instance=INSTANCE_NAME

REST v1

以下请求使用 databases:delete 方法删除指定数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • database-name:Cloud SQL 实例中数据库的名称

HTTP 方法和网址:

DELETE https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

REST v1beta4

以下请求使用 databases:delete 方法删除指定数据库。

在使用任何请求数据之前,请先进行以下替换:

  • project-id:项目 ID
  • instance-id:实例 ID
  • database-name:Cloud SQL 实例中数据库的名称

HTTP 方法和网址:

DELETE https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name

如需发送您的请求,请展开以下选项之一:

您应该收到类似以下内容的 JSON 响应:

psql 客户端

如需了解参考信息,请参阅 PostgreSQL 文档中的 DROP DATABASE

DROP DATABASE [database_name];

后续步骤

自行试用

如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud SQL 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。

免费试用 Cloud SQL