Cloud SQL 特性

本页面介绍 Cloud SQL 的主要特性和功能。Cloud SQL 适用于 MySQLPostgreSQLSQL Server

Cloud SQL for MySQL

特点

  • 云端全代管式 MySQL 社区版数据库。
  • Cloud SQL 实例支持 MySQL 8.0、5.7(默认)和 5.6,可提供最高 416 GB 的 RAM 和 30 TB 的数据存储空间,并可根据需要自动增加存储空间大小。
  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲和澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 支持专用 IP(专用服务访问权限)。
  • 数据在多个地区之间复制,具备自动故障转移。
  • 使用 mysqldump 导入和导出数据库,或者导入和导出 CSV 文件。
  • 支持 MySQL 连接协议和标准 MySQL 连接器。
  • 自动和按需备份,以及时间点恢复。
  • 实例克隆。
  • 与 Google Cloud 的运维套件的日志记录和监控功能集成。
  • 符合 ISO/IEC 27001

支持的语言

您可以将 Cloud SQL for MySQL 与采用 Java、Python、PHP、Node.js、Go 和 Ruby 编写的 App Engine 应用搭配使用,还可以将 Cloud SQL for MySQL 与采用标准 MySQL 协议的外部应用搭配使用。

如何连接到 Cloud SQL for MySQL 实例

您可以从以下各类应用连接到 MySQL 的 Cloud SQL 实例:

不支持使用专用 Google 访问通道连接到 Cloud SQL。 支持使用专用服务访问通道进行连接。如需了解详情,请参阅服务的专用访问通道选项

MySQL for Cloud SQL 8.0 中的用户管理

由于 MySQL 8.0 中的更改,您不能使用 CREATEDELETE 来进行 MySQL 用户管理。此外,您不能使用 INSERTUPDATEDELETE 语句修改用户特权,而应使用 CREATEDROP USER 以及 GRANTREVOKE 语句修改用户特权。如需了解详情,请参阅帐号管理说明

注意:请忽略帐号管理说明下关于运行 mysql_upgrade 以升级到 8.0 版的信息。请改为按照在实例上升级 MySQL 中介绍的过程进行升级。

Cloud SQL 与标准 MySQL 功能之间的差异

通常,Cloud SQL 实例提供的 MySQL 功能与本地托管的 MySQL 实例提供的功能相同。 但是,标准 MySQL 实例与 Cloud SQL for MySQL 实例之间存在一些差异。

不支持的 MySQL 特性

MySQL for Cloud SQL 5.6 和 5.7 不支持以下特性:

  • SUPER 特权

MySQL for Cloud SQL 8.0 不支持以下特性:

不支持的插件

不支持的语句

以下 SQL 语句生成错误,并显示消息“错误 1290:MySQL 服务器正在使用 Google 选项运行,因此无法执行此语句”(Error 1290: The MySQL server is running with the Google option so it cannot execute this statement):

  • LOAD DATA INFILE

    请注意,系统支持 LOAD DATA LOCALINFILE 语句。

  • SELECT ... INTO OUTFILE

  • SELECT ... INTO DUMPFILE

  • INSTALL PLUGIN ...

  • UNINSTALL PLUGIN

  • CREATE FUNCTION ... SONAME ...

以下语句不受支持,因为 MySQL 实例使用 GTID 复制:

  • CREATE TABLE ... SELECT 语句
  • 同时更新事务表和非事务表的事务或语句

MySQL for Cloud SQL 5.6 和 5.7 不支持以下语句,但 MySQL for Cloud SQL 8.0 支持这些语句。

  • 事务内的 CREATE TEMPORARY TABLE 语句

如需了解详情,请参阅 MySQL 文档

不受支持的函数

  • LOAD_FILE()

不受支持的客户端程序特性

  • mysqlimport(不使用 --local 选项时)。这是因为存在 LOAD DATA INFILE 限制。如果您需要远程加载数据,请使用 Cloud SQL 导入功能

  • mysqldump(使用 --tab 选项或使用与 --tab 配合使用的选项时)。这是因为没有为实例用户授予 FILE 权限。所有其他 mysqldump 选项均受支持。

  • 如果您要将包含二进制数据的数据库导入 Cloud SQL for MySQL 实例中,必须将 --hex-blob 选项与 mysqldump 搭配使用。

    虽然在使用本地 MySQL 服务器实例和 mysql 客户端时,hex-blob 不是必需的标志,但如果您要将任何包含二进制数据的数据库导入 Cloud SQL 实例中,则需要使用该标志。如需详细了解如何导入数据,请参阅导入数据

  • 并非所有 MySQL 选项和参数都可作为 Cloud SQL 标志进行修改。

    要请求添加可配置的 Cloud SQL 标志,请使用 Cloud SQL 论坛

  • 受支持的存储引擎仅有 InnoDB。 如需有关将表从 MyISAM 转换为 InnoDB 方面的帮助,请参阅 MySQL 文档

Cloud SQL 上预设的 MySQL 选项

Cloud SQL 使用一组特定的选项运行 MySQL。如果某个选项可能影响应用的工作方式,我们会在此处相应注明,以供您参考。

skip-name-resolve

此标志会影响系统如何解析主机名以进行客户端连接。 了解详情

log_bin

此标志会启用二进制日志记录。MySQL for Cloud SQL(包括 MySQL 8.0)中默认停用此标志。了解详情。您可以通过在实例上启用二进制日志记录来覆盖此默认设置。

MySQL 8.0 身份验证

MySQL 8.0 for Cloud SQL 使用 mysql_native_password(而不是 caching_sha2_password)作为新用户的默认身份验证插件。mysql_native_password 插件是 MySQL 5.6 和 5.7 用户的默认插件。

如果您希望新用户使用 caching_sha2_password 插件作为默认身份验证机制,则可以将您的实例对应于 default_authentication_plugin 的标志配置为使用 caching_sha2_password

要将现有用户配置为使用 caching_sha2_password,请使用 ALTER USER 命令更改身份验证插件。

具有 caching_sha2_password 身份验证的用户在连接时可能需要使用 get-server-public-key 标志。如需了解详情,请参阅关于使用 SHA-2 可插入式身份验证的 MySQL 文档部分。

MySQL 8.0 for Cloud SQL 不支持的 Cloud SQL 特性

MySQL 8.0 for Cloud SQL 不支持使用故障转移副本的旧版 MySQL 高可用性 (HA) 配置。它支持新的地区级 HA 配置

Cloud SQL for PostgreSQL

特性

  • 云端全代管式 PostgreSQL 数据库。
  • 可提供搭载高达 624 GB RAM 和 96 个 CPU 的自定义机器类型。
  • 可提供高达 30 TB 的存储空间,并可根据需要自动增加存储空间大小。
  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲和澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 数据在多个地区之间复制,具备自动故障转移。
  • 使用 SQL 转储文件导入和导出数据库。
  • 支持 PostgreSQL 客户端服务器协议和标准 PostgreSQL 连接器。
  • 自动备份和按需备份。
  • 实例克隆。
  • 与 Google Cloud 的运维套件的日志记录和监控功能集成。
  • 支持多个 PostgreSQL 版本

尚不可用的特性

Cloud SQL 尚不支持以下 Postgres 12 和 13 特性:

  • 低级虚拟机 (LLVM) 即时 (JIT) 编译
  • 逻辑复制

支持的扩展程序

Cloud SQL for PostgreSQL 支持许多 PostgreSQL 扩展程序。如需完整列表,请参阅 PostgreSQL 扩展程序

支持的过程语言

Cloud SQL for PostgreSQL 支持 PL/pgSQL SQL 过程语言

支持的语言

Cloud SQL for PostgreSQL 可用于以 Java、Python、PHP、Node.js、Go 和 Ruby 编写,在柔性环境中运行的 App Engine 应用,还可通过标准 PostgreSQL 客户端-服务器协议用于外部应用。

如何连接到 Cloud SQL for PostgreSQL 实例

您可以通过以下方式连接到 Cloud SQL for PostgreSQL 实例:

不支持使用专用 Google 访问权限连接到 Cloud SQL。

Cloud SQL 与标准 PostgreSQL 功能之间的差异

一般来说,Cloud SQL 实例提供的 PostgreSQL 功能与本地托管的 PostgreSQL 实例提供的功能相同。但是,标准 PostgreSQL 实例与 Cloud SQL for PostgreSQL 实例之间存在一些差异。

不支持的特性

  • 任何需要 SUPERUSER 权限的特性

    此规则不适用于 CREATE EXTENSION 语句,但仅针对支持的扩展程序

  • 自定义后台工作器

  • Cloud Shell 中的 psql 客户端不支持需要重新连接的操作,例如,使用 \c 命令连接到另一个数据库。

需注意的差异

Cloud SQL for SQL Server

特性

  • 云端全代管式 SQL Server 数据库。
  • 可提供高达 624 GB RAM 和 96 个 CPU 的自定义机器类型。
  • 可提供高达 30 TB 的存储空间,并可根据需要自动增加存储空间大小。
  • Google Cloud Console 中创建和管理实例。
  • 实例可在美国、欧盟、亚洲或澳大利亚使用。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL 代理或 SSL/TLS 协议建立安全的外部连接。
  • 使用 BAK 和 SQL 文件导入数据库。
  • 使用 BAK 文件导出数据库。
  • 自动备份和按需备份。
  • 实例克隆。
  • 与 Stackdriver Logging 和 Stackdriver Monitoring 集成。
  • 已启用 SQL Server Agent,以便于执行复制和其他作业。
  • 创建实例时,为数据库设置默认排序规则。

Cloud SQL 尚不支持的 SQL Server 特性

Cloud SQL 尚不支持的一般特性

  • SQL Server Reporting Services (SSRS)
  • SQL Server Analysis Services (SSAS),但您可以使用 Compute Engine 或自行管理的环境(从中连接到 Cloud SQL)
  • SQL Server Integration Services (SSIS),但您可以使用 Compute Engine 或自行管理的环境(从中连接到 Cloud SQL)
  • AD 身份验证
  • SP_Configure 设置(但请参阅配置数据库标志
  • Stretch 数据库
  • 向 Microsoft Azure Blob Storage 执行备份
  • 缓冲池扩展程序
  • BULK INSERT 和 OPENROWSET(BULK...) 特性
  • 数据质量服务
  • 数据库日志传送
  • Always On 可用性组
  • 数据库邮件
  • 分布式事务处理协调器 (MSDTC)
  • 文件表
  • FILESTREAM 支持
  • 维护计划
  • 性能数据收集器
  • 基于策略的管理
  • PolyBase
  • 机器学习和 R 服务(需要操作系统访问权限才能安装)
  • 资源调控器
  • SQL Server 审核
  • 服务器级触发器
  • Service Broker 端点
  • T-SQL 端点(所有使用 CREATE ENDPOINT 的操作均不受支持)
  • WCF Data Services
  • CDC - 变更数据捕获
  • sysadmin 角色及需要该角色的系统存储过程

Cloud SQL 尚不支持的其他操作

  • ADMINISTER BULK OPERATIONS
  • ALTER ANY CREDENTIAL
  • ALTER ANY EVENT NOTIFICATION
  • ALTER ANY EVENT SESSION
  • ALTER ANY SERVER AUDIT
  • ALTER RESOURCES
  • ALTER SETTINGS
  • AUTHENTICATE SERVER
  • CONTROL_SERVER
  • CREATE DDL EVENT NOTIFICATION
  • CREATE ENDPOINT
  • CREATE TRACE EVENT NOTIFICATION
  • EXTERNAL ACCESS ASSEMBLY
  • RESTORE
  • SHUTDOWN
  • CLR ASSEMBLIES

支持的语法

Cloud SQL for SQL Server 支持 Transact-SQL 语法

支持的语言

Cloud SQL for SQL Server 可用于以 Java、Python、PHP、Node.js、Go、Ruby 编写且在柔性环境中运行的 App Engine 应用。

如何连接到 Cloud SQL for SQL Server 实例

您可以通过以下方式连接到 Cloud SQL for SQL Server 实例:

不支持使用专用 Google 访问通道连接到 Cloud SQL。