修改实例

本页介绍如何修改现有 Cloud SQL 实例。

创建实例后,您可以在实例运行时对其进行修改以更改其设置。如需了解实例设置以及更改此类设置对实例的影响,请参阅实例设置

修改实例

大多数修改都只能应用于运行中的实例。

控制台

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

    转到“Cloud SQL 实例”

  2. 如需打开实例的概览页面,请点击实例名称。
  3. 点击修改
  4. 自定义实例部分中,如果系统显示显示配置选项菜单,则点击该菜单。
  5. 更新实例的所有可编辑设置。

    详细了解实例设置

  6. 点击保存

gcloud

此命令会修改备份开始时间。

gcloud sql instances patch INSTANCE_NAME \
--backup-start-time 16:00

此命令允许其他 Google Cloud 服务(例如 BigQuery)通过内部连接访问 Cloud SQL 中的数据并对此数据进行查询。

gcloud sql instances patch INSTANCE_NAME \
--enable-google-private-path

如果补丁修改的值需要重启实例,系统将提示您继续进行更改或取消操作。

如需详细了解实例配置标志,请参阅 gcloud sql instances patch

REST v1

通过使用此命令,您可以修改备份开始时间,允许其他 Google Cloud服务(如 BigQuery)通过内部连接访问 Cloud SQL 中的数据并对此数据进行查询。

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

  • PROJECT_ID:项目 ID
  • INSTANCE_ID:实例 ID
  • PRIVATE_NETWORK:您要添加或选择以创建专用连接的网络

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings": {
    "backupConfiguration": {
      "startTime": "16:00",
      "enabled": true,
      "binaryLogEnabled": true
    }
  }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true
    }
}

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

您应该收到类似以下内容的 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-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

如果补丁修改的值需要重启实例,系统将提示您继续进行更改或取消操作。

如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 API Explorer

REST v1beta4

通过使用此命令,您可以修改备份开始时间,允许其他 Google Cloud服务(如 BigQuery)通过内部连接访问 Cloud SQL 中的数据并对此数据进行查询。

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

  • PROJECT_ID:项目 ID
  • INSTANCE_ID:实例 ID
  • PRIVATE_NETWORK:您要添加或选择以创建专用连接的网络

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_ID

请求 JSON 正文:

{
  "settings": {
    "backupConfiguration": {
      "startTime": "16:00",
      "enabled": true,
      "binaryLogEnabled": true
    }
  }
    "ipConfiguration": {
      "privateNetwork": "PRIVATE_NETWORK",
      "authorizedNetworks": [],
      "ipv4Enabled": false,
      "enablePrivatePathForGoogleCloudServices": true
    }
}

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

您应该收到类似以下内容的 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-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_ID",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

如果补丁程序修改的值需要重启实例,系统将提示您继续进行更改或取消操作。

如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 API Explorer

编辑启用了 Private Service Connect 的实例

您可以使用 gcloud CLI 或 API 更新启用了 Private Service Connect 的实例。例如,您可以出于以下目的更新与实例关联的项目:

  • 允许从 Private Service Connect 端点连接到 Cloud SQL 实例。
  • 允许的项目列表中移除项目。对于任何已移除的项目,与任何现有 Private Service Connect 端点的连接将继续有效,但不接受新端点。

gcloud

如需更新可以使用 Private Service Connect 的项目,请使用 gcloud sql instances patch 命令:

gcloud sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--allowed-psc-projects=ALLOWED_PROJECTS

进行以下替换:

  • INSTANCE_NAME:VPC 网络中的 Private Service Connect 端点可以连接到的 Cloud SQL 实例的名称。
  • PROJECT_ID:Google Cloud 项目的 ID 或项目编号,该项目包含 VPC 网络中的 Private Service Connect 端点可以连接到的实例。
  • ALLOWED_PROJECTS:允许的项目 ID 或编号列表(以英文逗号分隔)。这些项目会替换已配置为使用 Private Service Connect 的项目。如果某个项目未包含在此列表中,您无法使用它来创建实例并为其启用 Private Service Connect。

以下示例允许两个项目(9876587654)从 Private Service Connect 端点连接到 12345 项目中包含的 myinstance Cloud SQL 实例:

gcloud sql instances patch myinstance \
--project=12345 \
--allowed-psc-projects='98765','87654'

如需移除所有允许的项目,请使用 gcloud sql instances patch 命令和
--clear-allowed-psc-projects 标志:

gcloud sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--clear-allowed-psc-projects

此标志可确保没有项目被意外允许。

REST v1

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

  • PROJECT_ID:Google Cloud 项目的 ID 或项目编号,该项目包含 VPC 网络中的 Private Service Connect 端点可以连接到的实例。
  • INSTANCE_NAME:VPC 网络中的 Private Service Connect 端点可以连接到的 Cloud SQL 实例的名称。
  • ALLOWED_PROJECTS:允许的项目 ID 或编号列表(以英文逗号分隔)。这些项目会替换已配置为使用 Private Service Connect 的项目。如果某个项目未包含在此列表中,您无法使用它来创建实例并为其启用 Private Service Connect。

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME

请求 JSON 正文:

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "pscConfig": {
        "allowedConsumerProjects": [ALLOWED_PROJECTS]
      }
    },
    "kind": "sql#settings"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

如需移除所有允许的项目,请使用 clear-allowed-psc-projects 标志。此标志可确保没有项目被意外允许。

如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 API Explorer

REST v1beta4

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

  • PROJECT_ID:Google Cloud 项目的 ID 或项目编号,该项目包含 VPC 网络中的 Private Service Connect 端点可以连接到的实例。
  • INSTANCE_NAME:VPC 网络中的 Private Service Connect 端点可以连接到的 Cloud SQL 实例的名称。
  • ALLOWED_PROJECTS:允许的项目 ID 或编号列表(以英文逗号分隔)。这些项目会替换已配置为使用 Private Service Connect 的项目。如果某个项目未包含在此列表中,您无法使用它来创建实例并为其启用 Private Service Connect。

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME

请求 JSON 正文:

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "pscConfig": {
        "allowedConsumerProjects": [ALLOWED_PROJECTS]
      }
    },
    "kind": "sql#settings"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}

如需移除所有允许的项目,请使用 clear-allowed-psc-projects 标志。此标志可确保没有项目被意外允许。

如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 API Explorer

修改实例的自定义 SAN

如果您想使用自定义 DNS 名称(而非 IP 地址)连接到 Cloud SQL 实例,那么请在创建实例时配置自定义主题备用名称 (SAN) 设置。您在自定义 SAN 设置中插入的自定义 DNS 名称会添加到实例的服务器证书的 SAN 字段中。这样,您就可以安全地使用自定义 DNS 名称进行主机名验证。

您可以使用自定义 SAN 对实例的服务器证书执行以下操作:

  • 向实例添加 DNS 名称:向自定义 SAN 设置添加最多三个自定义 DNS 名称的英文逗号分隔列表。Cloud SQL 会将这些名称添加到服务器证书的 SAN 字段中。您可以使用单个证书保护多个 DNS 名称。
  • 修改实例的 DNS 名称:更改您要添加到实例服务器证书的 SAN 字段中的自定义 DNS 名称。
  • 从实例中移除 DNS 名称:从实例的服务器证书的 SAN 字段中移除所有自定义 DNS 名称。

您可以使用 gcloud CLI 或 API 修改实例的自定义 SAN。

gcloud

如需修改实例的自定义 SAN,请使用 gcloud beta sql instances patch 命令:

gcloud beta sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--custom-subject-alternative-names=DNS_NAMES

进行以下替换:

  • INSTANCE_NAME:具有您要为其添加、修改或移除 DNS 名称的服务器证书的 Cloud SQL 实例的名称
  • PROJECT_ID:包含实例的 Google Cloud 项目的 ID 或项目编号
  • DNS_NAMES:您要添加到实例服务器证书中的最多三个 DNS 名称的英文逗号分隔列表

如需从 Cloud SQL 实例的服务器证书中移除所有 DNS 名称,请使用 gcloud beta sql instances patch 命令和
--clear-custom-subject-alternative-names 标志:

gcloud beta sql instances patch INSTANCE_NAME \
--project=PROJECT_ID \
--clear-custom-subject-alternative-names

此标志可确保没有 DNS 名称被意外添加到证书中。

REST

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

  • PROJECT_ID:Google Cloud 项目的 ID 或项目编号。此项目包含一个 Cloud SQL 实例,该实例具有您要为其添加、修改或移除 DNS 名称的服务器证书。
  • INSTANCE_NAME:实例的名称。
  • DNS_NAMES:您要添加到实例服务器证书中的最多三个 DNS 名称的英文逗号分隔列表。

    如果您已向证书添加了 DNS 名称,并且使用此参数指定其他 DNS 名称,则 Cloud SQL 会从证书中移除原始 DNS 名称。

    如果您没有为 customSubjectAlternativeNames 参数指定任何 DNS 名称,而是提供 null [] 值,则 Cloud SQL 会从实例的服务器证书中移除所有 DNS 名称。这样可确保没有 DNS 名称被意外添加到证书中。

HTTP 方法和网址:

PATCH https://sqladmin.googleapis.com/sql/v1veta4/projects/PROJECT_ID/instances/INSTANCE_NAME

请求 JSON 正文:

{
  "kind": "sql#instance",
  "name": "INSTANCE_NAME",
  "project": "PROJECT_ID",
  "settings": {
    "ipConfiguration": {
      "customSubjectAlternativeNames": "DNS_NAMES"
    },
    "kind": "sql#settings"
  }
}

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

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

{
  "kind": "sql#operation",
  "targetLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances/INSTANCE_NAME",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2020-01-16T02:32:12.281Z",
  "operationType": "UPDATE",
  "name": "OPERATION_ID",
  "targetId": "INSTANCE_NAME",
  "selfLink": "https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/operations/OPERATION_ID",
  "targetProject": "PROJECT_ID"
}
如需了解如何为此任务构建底层 REST API 请求,请参阅 instances:patch 页面上的 APIs Explorer