Cloud SQL for MySQL 特性

本页面介绍 Cloud SQL for MySQL 的主要特性和功能。Cloud SQL 还提供 PostgreSQLSQL Server 版本。

按 Cloud SQL 版本列出的 MySQL 功能

如需详细了解每个版本的 Cloud SQL for MySQL 的功能,请参阅 Cloud SQL 版本简介

面向 Cloud SQL 的 MySQL 一般功能支持

  • 云端全代管式 MySQL 社区版数据库。
  • 实例可在美国、欧盟、亚洲和澳大利亚使用。查看可创建 Cloud SQL 实例的所有位置
  • 支持使用 Database Migration Service (DMS) 从源数据库迁移到 Cloud SQL 目标数据库。
  • 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
  • 支持使用 Cloud SQL Auth 代理或 SSL/TLS 协议建立安全的外部连接。
  • 支持专用 IP(专用服务访问权限)。
  • 数据在多个地区之间复制,具备自动故障切换。
  • 使用 mysqldump 导入和导出数据库,或者导入和导出 CSV 文件。
  • 支持 MySQL 连接协议和标准 MySQL 连接器。
  • 自动备份、按需备份,以及时间点恢复。
  • 实例克隆。
  • 与 Google Cloud Observability 日志记录和监控集成。
  • 符合 ISO/IEC 27001

Cloud SQL for MySQL 支持的语言

您可以将 Cloud SQL 与使用以下语言编写的柔性环境中运行的 App Engine 应用搭配使用:

  • C#
  • Go
  • Java
  • Node.js
  • PHP
  • Python
  • Ruby

还可以将 Cloud SQL 与采用标准 MySQL 协议的外部应用搭配使用。

如何连接到 Cloud SQL for MySQL 实例

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

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

Cloud SQL for MySQL 8.0 中的用户管理

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

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

标准 MySQL 功能和 Cloud SQL for MySQL 之间的区别

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

Cloud SQL 不支持的 MySQL 特性

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

  • SUPER 特权

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

Cloud SQL 不支持的 MySQL 插件

Cloud SQL 不支持的 MySQL 语句

以下 SQL 语句会生成错误,并显示 Error 1290: The MySQL server is running with the Google option so it cannot execute this statement 消息:

  • LOAD DATA INFILE

  • SELECT ... INTO OUTFILE

  • SELECT ... INTO DUMPFILE

  • INSTALL PLUGIN ...

  • UNINSTALL PLUGIN

  • CREATE FUNCTION ... SONAME ...

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

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

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

  • 事务内的 CREATE TEMPORARY TABLE 语句

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

Cloud SQL 不支持的 MySQL 函数

  • LOAD_FILE()

Cloud SQL 不支持的 MySQL 客户端程序特性

  • mysqldump(使用 --tab 选项或使用与 --tab 配合使用的选项时)。这是因为没有为实例用户授予 FILE 权限。所有其他 mysqldump 选项均受支持。如需了解如何使用 mysqldump 选项优化文件以导入到 Cloud SQL,请参阅使用 mysqldump 从本地 MySQL 服务器导出

  • mysqlimport(不使用 --local 选项时)。这是因为存在 LOAD DATA INFILE 限制。如需将数据导入到 Cloud SQL 实例中,请参阅使用转储文件导入使用 CSV 文件导入

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

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

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

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

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

Cloud SQL 预设的 MySQL 选项

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

skip-name-resolve

此标志会影响系统如何解析主机名以进行客户端连接。 请参阅 MySQL 文档中的 skip-name-resolve

log_bin

此标志报告是否启用了二进制日志记录。如果使用 --log-bin 选项,则此变量的值为 ON;否则为 OFF。请参阅 MySQL 文档中的 log_bin

适用于 Cloud SQL 的 MySQL 8.0 身份验证

Cloud SQL for MySQL 8.0 使用 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 标志。如需了解详情,请参阅 MySQL 文档中的使用 SHA-2 可插入式身份验证

对 Cloud SQL 中 MySQL 系统标志的更改

对于某些 MySQL 系统标志,Cloud SQL 使用与默认值不同的值。您无法更改这些标志的值。如需查看标志列表,请参阅 Cloud SQL 中 MySQL 系统标志的更改

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

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