创建和管理数据库
  
      
    
  
  
  
  
  
    
  
  
    
    
    
    
  
  
本页面介绍如何在 Cloud SQL 实例上创建、列出和删除 PostgreSQL 数据库。
  
新创建的实例具有一个 postgres 数据库。
  
要详细了解 PostgreSQL 数据库,请参阅 
PostgreSQL 文档。
准备工作
在完成本页面上的任务之前,必须先执行以下操作:
- 创建一个 Cloud SQL 实例。如需了解详情,请参阅创建实例。
如果您计划通过 psql 客户端创建或管理数据库,则必须执行以下操作:
- 配置访问权限并通过 psql客户端连接到该实例。
如需详细了解连接方案,请参阅外部应用连接方案。
在 Cloud SQL 实例上创建数据库
控制台
 
  - 
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。 转到“Cloud SQL 实例” 
- 
如需打开实例的概览页面,请点击实例名称。
- 从 SQL 导航菜单中选择数据库。
- 点击创建数据库。
- 在新建数据库对话框中,指定数据库的名称。
 
- 点击创建。
gcloud
如需了解参考信息,请参阅 gcloud
  sql databases create。
gcloud sql databases create DATABASE_NAME \
--instance=INSTANCE_NAME
    如需创建数据库,请使用 Terraform 资源。
      
      
      
  
      
      
       应用更改
        如需在 Google Cloud 项目中应用 Terraform 配置,请完成以下部分中的步骤。
准备 Cloud Shell
  - 启动 Cloud Shell。
- 
    设置要应用 Terraform 配置的默认 Google Cloud 项目。
     您只需为每个项目运行一次以下命令,即可在任何目录中运行它。 export GOOGLE_CLOUD_PROJECT=PROJECT_ID 如果您在 Terraform 配置文件中设置显式值,则环境变量会被替换。 
准备目录
每个 Terraform 配置文件都必须有自己的目录(也称为“根模块”)。
  - 
    在 Cloud Shell 中,创建一个目录,并在该目录中创建一个新文件。文件名必须具有 .tf扩展名,例如main.tf。在本教程中,该文件称为main.tf。mkdir DIRECTORY && cd DIRECTORY && touch main.tf 
- 
    如果您按照教程进行操作,可以在每个部分或步骤中复制示例代码。 将示例代码复制到新创建的 main.tf中。
 (可选)从 GitHub 中复制代码。如果端到端解决方案包含 Terraform 代码段,则建议这样做。
     
- 查看和修改要应用到您的环境的示例参数。
- 保存更改。
- 
    初始化 Terraform。您只需为每个目录执行一次此操作。
    terraform init (可选)如需使用最新的 Google 提供程序版本,请添加 -upgrade选项:
 terraform init -upgrade 
应用更改
  - 
    查看配置并验证 Terraform 将创建或更新的资源是否符合您的预期:terraform plan 根据需要更正配置。 
- 
    通过运行以下命令并在提示符处输入 yes来应用 Terraform 配置:terraform apply 等待 Terraform 显示“应用完成!”消息。 
- 打开您的 Google Cloud 项目以查看结果。在 Google Cloud 控制台的界面中找到资源,以确保 Terraform 已创建或更新它们。
  
删除更改
                如需删除更改,请执行以下操作:
         
            - 如需停用防删除保护,请在 Terraform 配置文件中将 deletion_protection参数设置为false。deletion_protection =  "false" 
- 运行以下命令并在提示符处输入 yes,以应用更新后的 Terraform 配置:terraform apply 
            - 
             运行以下命令并在提示符处输入 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"
}
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
    
      将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d @request.json \
     "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases"
  PowerShell (Windows)
  
  
    
      
    
  
  
    
      将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "CREATE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
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"
}
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
    
      将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
    
    
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
  
  curl -X POST \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     -H "Content-Type: application/json; charset=utf-8" \
     -d @request.json \
     "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases"
  PowerShell (Windows)
  
  
    
      
    
  
  
    
      将请求正文保存在名为 request.json 的文件中,然后执行以下命令:
    
    
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
    
  
  
  
    
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method POST `
    -Headers $headers `
    -ContentType: "application/json; charset=utf-8" `
    -InFile request.json `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "CREATE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
  
  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;
  
 
列出数据库
要列出实例上的所有数据库,请执行以下操作:
控制台
   - 
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。 转到“Cloud SQL 实例” 
- 
如需打开实例的概览页面,请点击实例名称。
- 点击左侧菜单中的数据库。数据库页面列出了数据库及其排序规则类型、字符集和数据库类型。
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
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
  
    执行以下命令:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases"
  PowerShell (Windows)
  
  
    
      
    
  
  
  执行以下命令:
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#database",
  "charset": "utf8",
  "collation": "utf8_general_ci",
  "etag": "etag",
  "name": "sys",
  "instance": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/sys",
  "project": "project-id"
}
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
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
  
    执行以下命令:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X GET \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases"
  PowerShell (Windows)
  
  
    
      
    
  
  
  执行以下命令:
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method GET `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#database",
  "charset": "utf8",
  "collation": "utf8_general_ci",
  "etag": "etag",
  "name": "sys",
  "instance": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/sys",
  "project": "project-id"
}
psql 客户端
如需了解参考信息,请参阅列表。
使用 psql 客户端列出数据库时,您将看到控制台未显示的其他模板数据库和一个系统数据库。您不能删除或管理此系统数据库。
\l
  
 
删除数据库
要删除 Cloud SQL 实例上的数据库,请执行以下操作:
控制台
  - 
在 Google Cloud 控制台中,前往 Cloud SQL 实例页面。 转到“Cloud SQL 实例” 
- 
如需打开实例的概览页面,请点击实例名称。
- 点击左侧菜单中的数据库。
- 在数据库列表中,找到您要删除的数据库并点击回收站图标。
- 在删除数据库对话框中,输入数据库的名称,然后点击删除。
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
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
  
    执行以下命令:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name"
  PowerShell (Windows)
  
  
    
      
    
  
  
  执行以下命令:
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id/databases/database-name" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
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
如需发送您的请求,请展开以下选项之一:
  curl(Linux、macOS 或 Cloud Shell)
  
  
    
      
    
  
  
  
    执行以下命令:
  
  
  
  
  
    
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  
  curl -X DELETE \
     -H "Authorization: Bearer $(gcloud auth print-access-token)" \
     "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name"
  PowerShell (Windows)
  
  
    
      
    
  
  
  执行以下命令:
  
  
  
  
    
  
  
  
  
  
    
    
  
  
  
  
  
  
  
  
  
  
  
  
    
  
  
  
  
  
  
  
  
    
  
  $cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
    -Method DELETE `
    -Headers $headers `
    -Uri "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/databases/database-name" | Select-Object -Expand Content
    您应该收到类似以下内容的 JSON 响应:
    
响应
  
{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-21T22:43:37.981Z",
  "operationType": "DELETE_DATABASE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}
psql 客户端
如需了解参考信息,请参阅 PostgreSQL 文档中的 DROP DATABASE。
  DROP DATABASE [database_name];
 
后续步骤
  
    
      
        自行试用
      
      
        
          
        
      
        如果您是 Google Cloud 新手,请创建一个账号来评估 Cloud SQL 在实际场景中的表现。新客户还可获享 $300 赠金,用于运行、测试和部署工作负载。
        
      
      
      免费试用 Cloud SQL
     
   
  
  
  
    
  
  
 
  
    
    
      
       
         
  
       
    
    
  
  
  如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
  最后更新时间 (UTC):2025-10-19。
  
  
    
    
    
      
  
    
  
  
    
      [[["易于理解","easyToUnderstand","thumb-up"],["解决了我的问题","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["很难理解","hardToUnderstand","thumb-down"],["信息或示例代码不正确","incorrectInformationOrSampleCode","thumb-down"],["没有我需要的信息/示例","missingTheInformationSamplesINeed","thumb-down"],["翻译问题","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["最后更新时间 (UTC):2025-10-19。"],[],[]]